GStreamer jest biblioteką typu open source, złożonym oprogramowaniem, które działa jako platforma multimedialna dla wielu systemów operacyjnych GNU / Linux, a także systemów Android, OpenBSD, Mac OS X, Microsoft Windows, i systemy operacyjne Symbian.
Funkcje na pierwszy rzut oka
Najważniejsze funkcje obejmują obszerną bibliotekę rdzenia, inteligentną architekturę wtyczek, rozszerzony zasięg technologii multimedialnych, a także rozbudowane narzędzia programistyczne, dzięki czemu można łatwo dodać obsługę GStreamera do swoich aplikacji.
Jest to główny backend multimedialny dla szerokiej gamy projektów open source, szalejących z aplikacji do odtwarzania audio i wideo, takich jak Totem (wideo) ze środowiska graficznego GNOME i złożonych edytorów wideo i audio.
Dodatkowo, oprogramowanie cechuje się bardzo wysoką wydajnością i małym opóźnieniem, dzięki niezwykle lekkiej technologii przesyłania danych, a także globalnej synchronizacji między strumieniami (audio / wideo) poprzez taktowanie.
Zawiera wiele pakietów kodeków
Projekt składa się z kilku różnych pakietów, znanych również jako pakiety kodu, które można łatwo zainstalować w dowolnej dystrybucji GNU / Linux z ich domyślnych repozytoriów oprogramowania - wszystko naraz lub osobno. Są one następujące: Baza wtyczek GStreamer, Wtyczki GStreamer dobre, Wtyczki GStreamer Bad i Wtyczki GStreamer Ugly.
GStreamer to kompaktowa biblioteka rdzeniowa, która pozwala na losowe konstrukcje pipleline dzięki swojej graficznej strukturze opartej na bibliotece obiektów obiektowych GLib 2.0, która może być używana do projektowania obiektowego i dziedziczenia.
Korzysta z technologii QoS (Quality of Service)
Aby zagwarantować najlepszą możliwą jakość dźwięku i obrazu przy dużym obciążeniu procesora, projekt wykorzystuje technologię QoS (Quality of Service). Ponadto zapewnia przejrzystą i trywialną budowę wielowątkowych potoków.
Dzięki prostemu, stabilnemu i czystemu API (Application Programming Interface) programiści mogą łatwo zintegrować go z aplikacjami, a także stworzyć wtyczki, które rozszerzą jego domyślną funkcjonalność. Zapewnia im także w pełni funkcjonalny system debugowania.
Dolna linia
Podsumowując, GStreamer to bardzo potężne i wysoko cenione środowisko multimedialne dla ekosystemu open source, zapewniające użytkownikom GNU / Linuksa szeroką gamę kodeków audio i wideo do odtwarzania i przetwarzania multimediów.
< strong> Co nowego w tej wersji:
- Wydanie poprawki błędu.
Co nowego w wersji 1.14.1:
- Wydanie poprawki błędu.
Co nowego w wersji:
- Ta wersja zawiera tylko poprawki błędów i powinna być bezpieczna aktualizacja od 1.8.0.
Co nowego w wersji 1.8.2:
- Ta wersja zawiera tylko poprawki błędów i powinna być bezpieczna zaktualizować z wersji 1.8.0.
Co nowego w wersji 1.8.0:
- Sprzętowe dekodowanie wideo z zerową szybkością na Androidzie
- Nowe źródło przechwytywania wideo dla systemu Android przy użyciu interfejsu API android.hardware.Camera
- Obsługa odtwarzania wstecznego Windows Media (ASF / WMV / WMA)
- Nowy system śledzenia zapewnia obsługę bardziej zaawansowanych narzędzi do debugowania
- Nowy interfejs API wygodnego odtwarzania GstPlayer na wysokim poziomie
- Wstępne wsparcie dla nowego API Vulkan, zobacz wpis na blogu Matthew Waters, aby uzyskać więcej informacji
- Ulepszona obsługa kodeków audio Opus: Obsługa więcej niż dwóch kanałów; Demuxer / muxer MPEG-TS może teraz obsługiwać Opus; próbne kodowanie / dekodowanie / transmixowanie za pomocą Ogg, Matroska, ISOBMFF (Quicktime / MP4) i MPEG-TS jako kontener; nowe funkcje narzędzia do kodowania dla obsługi nagłówków i znaczników Opus w bibliotece pbutils. Elementy enkodera / dekodera Opus zostały również przeniesione do gst-plugins-base (od -bad), a opus RTP do depo-loader / payloader do -good.
- Moduł VAAPI GStreamer został teraz wydany i utrzymywany w ramach projektu GStreamer
- Obsługa proxy zasobów w usługach edycji GStreamer
Co nowego w wersji 1.6.3:
- Napraw regresję w bibliotece GL, która sprawiła, że glimagesink jest niepoprawny na Androidzie
- Pełne przepełnienie arytmetyczne w elemencie queue2, które może przerwać buforowanie lub spowodować awarie z powodu pustego wskaźnika dereferencji
- Napraw awarię w typografii AAC / ADTS spowodowanej odczytaniem większej ilości pamięci niż jest dostępna
- Przestań ignorować błędy enkoderów w koderach VP8 / VP9
- Przestań GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED. To jest rewolucyjne i nigdy nie zostało zaimplementowane
- Upewnij się, że przechowujesz poprawne informacje o filmie w GstVideoBufferPool
- Napraw ograniczenia w rtspsrc podczas wykonywania SRTP przez przeplatany TCP
- Napraw awarię w programie pcap parser na pakietach 0-rozmiarowych
- Wyczyść flagę EOS w appsrc, aby umożliwić ponowne użycie po EOS i opróżnieniu
- Ignoruj przepłukiwanie strumieni w strumieniu synchronizującym podczas przełączania strumienia, aby naprawić problemy spowodowane przez to w usługach edycji gst
- Ignoruj tagi i inne metadane w plikach WAV po "danych". porcja w trybie PUSH, aby zapobiec ich interpretacji jako audio
- Prawidłowo używaj kolorymetrii w wersji v4l2 tylko dla formatów kolorów YUV
- Ustawia bity zarezerwowane w muxerze MPEG TS na 1s
- Naprawiono obliczanie długości ramek SBC
- Napraw wyjście depayloadera RTP JPEG2000, aby mieć jedną ramkę na bufor i awarię w dekoderze OpenJPEG na niekompletnych ramkach
- Zaktualizuj migawkę ffmpeg w gst-libav do wersji 2.8.5
- Naprawiono luki w pamięci w scaletempo, surowym urządzeniu do pobierania plików RTP oraz w odtwarzaniu związanym z filtrami audio / wideo
- Poprawki dotyczące obsługi błędów w wtyczce audio OSX
- Różne poprawki i dodatki do adnotacji gobject-introspekcja
- Poprawki kompilatora dla najnowszego kompilatora clang
Co nowego w wersji 1.6.1:
- Awaria w koderach gst-libav została naprawiona
- Więcej strumieni testowych DASH-IF działa teraz
- Transmisje na żywo strumieni DASH, HLS i MS SmoothStreaming działają bardziej niezawodnie i inne poprawki dla adaptacyjnych protokołów strumieniowych
- Odtwarzanie wstecz działa z funkcją scaletempo, aby zachować wysokość dźwięku
- Prawidłowy czas strumienia jest zgłaszany dla ujemnej wartości zastosowanej
- Sprawdzanie poprawności pakietu SRTP podczas dekodowania nie odrzuca już poprawnych pakietów
- Naprawiono generator audioagregatora i agregator, aby rozpocząć produkcję w odpowiednim czasie i np. na początku nie wyświetla się dużo ciszy
- Wewnętrzna migawka ffmpeg gst-libav została zaktualizowana do wersji 2.8.1
- Cerbero obsługuje system Mac OS X 10.11 (El Capitan)
- Naprawiono różne wycieki pamięci, w tym duże wycieki w playbacku, odtwarzaniu i dekodowaniu
- Różne poprawki opisów GObject-Introspection dla powiązań
- i wiele, wiele więcej
Co nowego w wersji 1.6.0:
- Stereoskopowa obsługa wideo 3D i multiview
- Tryb sztuczny API do odtwarzania tylko klatka po klatce / szybkiego przewijania do tyłu itp.
- Ulepszono DTS (dekodowanie znacznika czasowego) w stosunku do PTS (timestamp prezentacji) w celu uwzględnienia negatywnego DTS
- Nowy interfejs API GstVideoConverter zapewniający bardziej zoptymalizowaną i poprawniejszą konwersję surowych klatek wideo pomiędzy wszystkimi obsługiwanymi formatami, z przeskalowaniem
- v4l2src obsługuje teraz renegocjację
- v4l2transform może teraz wykonywać skalowanie
- Element V4L2 raportuje teraz poprawnie kolorymetrię
- Łatwiejsze nagrywanie z MP4, Matroska, Ogg, MPEG-TS: nowe ulepszenia w technologii splitmuxsink i multifilesink
- Interfejs API sygnalizacji ochrony treści i wspólnego szyfrowania (CENC) dla DASH / MP4
- Wiele usprawnień w strumieniu adaptacyjnym (DASH, HLS i MSS)
- Nowe zegary klientów sieci PTP i NTP i lepsza stabilność śledzenia na zdalnym zegarze
- Wysokiej jakości nakładka napisów tekstowych w rozdzielczości wyświetlania z glimagesink lub gtkglsink
- Obsługa RECORD dla serwera RTSP GStreamer
- Obsługa retransmisji (RTX) w serwerze i kliencie RTSP
- Naprawiono RTSP szukający wsparcia na kliencie i serwerze
- Ulepszenia harmonogramu RTCP i zmniejszona obsługa formatu RTCP
- MPX / MOV muxer nabył nowy "solidny" tryb działania, który próbuje zawsze zachować plik wyjściowy w poprawnym stanie
- Obsługa mieszania na żywo w agregatorze, audiomikserze i komponencie została znacznie poprawiona
- Compositor obsługuje teraz przeskalowywanie strumieni wejściowych w locie
- Nowy element przeplotu audio z odpowiednią synchronizacją wejścia i obsługą wejścia na żywo
- Blackmagic Design Obsługa kart przechwytywania i odtwarzania DeckLink została przepisana od zera; Obsługa 2k / 4k; wykrywanie trybu
- Obsługa metadanych KLV w RTP i MPEG-TS
- Koder wideo H.265 (x265), dekodery (libav, libde265) i program ładujący i odbiorcze RTP
- Nowa wtyczka DTLS i obsługa SRTP / DTLS
- Obsługa OpenGL3, wiele kontekstów i propagacja kontekstu, wideo 3D, separacja transferu / konwersji, mieszanie napisów
- Nowe zlewozmywak wideo QML oparty na OpenGL, zlew wideo Gtk GL, zlew wideo CoreAnimation CAOpenGLLayerSink
- gst-libav przełączył się na ffmpeg jako dostawca libav, zyskał wsparcie dla wideo 3D / multiview, tryby trick i kodek CAVS
- API GstHarness dla testów jednostkowych
- gst-editing-services uzyskał zupełnie nowy interfejs ges-launch-1.0, ulepszone wsparcie miksowania i integrację z gst-validate
- gnonlin został przestarzały na rzecz nle (Non Linear Engine) w usługach edycji gst
- gst-validate ma nowy system wtyczek, rozbudowany domyślny zestaw testowy, obsługę równoległych przebiegów testowych i obsługę valgrind
- Narzędzie do budowania cerbero dla pakietów binarnych SDK zyskuje nowe polecenie 'bundle-source'
- Różne ulepszenia w obsłudze platform Android, iOS, OS X i Windows
Co nowego w wersji 1.5.2:
- 740502: Dodaj własność absolutną do GstDirectControlBinding
- 740575: Naprawianie DTS w GStreamer
- 745366: concat: Przekaż zdarzenia FLUSH_START / FLUSH_STOP
- 746949: concat: Dodaj właściwość aktywnego padu
- 750027: concat: Resetowanie wewnętrznego przesunięcia początkowego do 0 po spłukaniu wyszukiwania
- 750033: basetransform - pozwala na sortowanie / separację buforów
- 750039: Utrzymywanie buforów z pamięcią wspólną w pamięci
- 750319: pamięć: podklasy nie znają flag mapy w mapowaniu
- 750530: ptp: FreeBSD, DragonFly i inne BSD nie mają ifreq.ifw_hwaddr
- 750574: netclientclock: Ustaw zegar jako zegar wewnętrzny wokół wewnętrznego zegara
- 750761: inputselector: Obsługa różnych ścieżek czasowych
- 750782: potok: Dodaj właściwość gst_pipeline_set_latency (), getter i GObject
- 751026: basesink: Poprawnie obsługuje listy buforów dla właściwości ostatniej próbki
- 751047: concat: Dodaj właściwość base-base
- 751107: concat: gdy zwolnisz pad, wyślij poprawnie EOS.
- 751235: utils: get_compatible_pad nie respektuje w pełni kapsli filtra
- 751420: basesink: musisz głęboko skopiować ostatnią listę buforów w trybie drenażu
Co nowego w wersji 1.4.5:
- Rdzeń GStreamer:
- 736969: queue2: dead lock podczas buforowania
- 738092: basesink: zapisuje raportowaną pozycję na podstawie kierunku
- 740001: zadanie: stan wyścigu podczas wstrzymywania i zatrzymywania
- Baza wtyczek GStreamer:
- 741420: pule wideo: powinien zaktualizować rozmiar w konfiguracji po zastosowaniu wyrównania
- 715050: dodaj typefinder dla audio / x-audio
- 739544: tcp: Dodaj test i napraw wyciek pamięci w elementach tcp
- 739840: typefine powinno rozpoznać format Apple Core Audio (CAF)
- 740556: videodekoder: nie narzekaj, gdy DTS! = PTS na klatkach kluczowych
- 740675: playback: kontynuuje odtwarzanie, resetuje właściwość wyciszenia
- 740730: rtspconnection: nie usuwaj źródła podrzędnego, jeśli źródło nadrzędne jest już zniszczone
- 740853: audiodecoder: Prześlij oczekujące zdarzenia przed wysłaniem EOS.
- 740952: alsa: Poprawki NetBSD
- 741045: audiorate może w niektórych przypadkach utracić precyzję znacznika czasu
- 741198: playbin: leaks GstPads
- Wtyczki GStreamer:
- 711437: apev2mux: nie należy umieszczać znaczników APEv2 na początku plików WavPack
- 726194: v4l2src nie radzi sobie dobrze, gdy karta przechwytywania jest czasami przepleciona, czasami progresywna w tej samej rozdzielczości
- 736397: flvdemux: Resynchronizacja według strumienia powoduje deskryptowanie A / V
- 737603: v4l2bufferpool: ustaw flagi przeplotu bufora, gdy pole to V4L2_FIELD_INTERLACED
- 739476: vpx: nie kompiluje przeciwko libvpx z git
- 739722: matroskamux: Bezpieczny wątek GstMatroskamuxPad
- 739789: v4l2allocator: naprawia komunikat o błędzie, jeśli alokacja jest już aktywna
- 739791: v4l2bufferpool: unref pool, gdy v4l2_allocator_new () nie powiedzie się
- 739792: v4l2allocator: napraw prototyp gst_v4l2_allocator_stop
- 739996: videomixer: Usuwa wiele ramek, jeśli jedno z nich jest aktywne
- 740040: v4l2src: Błąd w obecności V4L2_BUF_FLAG_ERROR
- 740392: rtspsrc: błąd mikey base64 decoded key-mgmt
- 740407: przechwytywanie limitów qtmux do 4096 x 4096
- 740633: v4l2src: tryb RW io jest uszkodzony
- 740636: v4l2src: liczba klatek na sekundę nie zawsze jest ustawiana w sterowniku
- 740671: aspectratiocrop: crop musi zostać zresetowany po zmianie rozmiaru wideo
- 740905: v4l2: nadal ma 1 wartość włączoną do linux / videodev.h
- 741271: rtph264pay: Wyciek buforu w ładowniku H.264 podczas korzystania z SPS / PPS
- 741381: rtph264pay: Stan wyścigu może spowodować awarię podczas przejścia z PAUSED- & gt; GOTOWE
- 741407: deinterlace: w query_caps zwraca tylko obsługiwane formaty, jeśli filtr jest przeplatany
- 737579: v4l2object: ustaw kolorową przestrzeń dla urządzeń wyjściowych
- 739754: v4l2bufferpool: Należy sprawdzić, czy wszystkie pamięci można zapisać przed powrotem do kolejki
- Wtyczki GStreamer Bad:
- 722764: rawparse: naprawienie obsługi zapytań SEEKING
- 729768: mpegtsbase: Podnieś limit, aby przeczytać więcej bajtów, aby znaleźć PCR
- 739152: gl / cocoa: kompilacja z GNUStep kończy się niepowodzeniem
- 740191: dvbbasesink: segfaults na 32-bitowym (rpi)
- 740201: gl / cocoa: nie kompiluje się na OSX & lt; 10.7 więcej
- 740451: srtpdec: wycieki zdarzenia rtp / rtcp sink
- 740953: configure.ac: niepoprawny test (1) operator porównania
- 741321: opusparse: parsowanie nagłówka esp. zakodowanego wyjścia z libopusa
- Serwer RTSP GStreamer:
- 739481: rtsp-stream: wyciek srtp dekodera po opuszczeniu rtpbin
Co nowego w wersji 1.4.4:
- Błędy naprawione w wersji 1.4.5:
- 737498: multiqueue: nie bierze pod uwagę zdarzenia GAP przy obliczaniu bieżącego poziomu
- 737794: multiqueue: zakleszczenie, jeśli przekroczono kolejkę z serializowanymi zdarzeniami
- 737999: systemclock: problem z wpisami o wielu wątkach
- 738198: multiqueue: Nie buduje nieskojarzonych strumieni w systemie EOS
Co nowego w wersji 1.4.1:
- Seria wydań 1.4 dodaje nowe funkcje na wierzchu z serii 1.2 i jest częścią serii wydań API i ABI-stable 1.x z frameworka multimedialnego GStreamer, który zawiera nowe funkcje. Wydania poprawek 1.4.x zawierają tylko ważne poprawki błędów w porównaniu do 1.4.0.
Co nowego w wersji 1.4 RC2:
- Zespół GStreamer ma przyjemność ogłosić drugiego kandydata na wersję stabilną 1.4. Seria wydań 1.4 dodaje nowe funkcje do serii 1.0 i 1.2 i jest częścią serii wydawniczej API i ABI-stable 1.x platformy multimedialnej GStreamer.
- Ten kandydat do wydania wkrótce niedługo obejmie stabilną wersję 1.4.0, jeśli nie zostaną wykryte większe regresje lub większe problemy, i zdarzyło się wystarczająco dużo testów kandydata na wydanie. Nowy interfejs API, który został dodany podczas serii wersji 1.3, nie powinien już więcej się zmieniać.
Co nowego w wersji 1.4 RC1:
- Nowy interfejs API:
- GstMessageType został dodany GST_MESSAGE_EXTENDED. Wszystkie typy wcześniej mogą być używane razem jako typ flagi jak poprzednio, ale od tej wiadomości typy są po prostu liczone przyrostowo. Było to konieczne, aby móc dodać więcej typów wiadomości. W wersji 2.0 GstMessageType po prostu stanie się wylicznikiem, a nie typem flagi.
- GstDeviceMonitor do sondowania urządzenia, np. aby wyświetlić wszystkie dostępne urządzenia do przechwytywania audio lub wideo. To jest zamiennik dla GstPropertyProbe z wersji 0.10.
- Zdarzenia gromadzą przesunięcie czasu biegu teraz podczas podróży przez klocki, zgodnie z ustawieniem funkcji gst_pad_set_offset (). Pozwala to na to zrekompensować na przykład w przypadku QOS.
- GstBuffer ma nową flagę "tag-memory" ustawiane automatycznie po dodaniu lub usunięciu pamięci do bufora. Dzięki temu pule buforów mogą wykryć, czy potrafią ponownie przetworzyć bufor, czy też muszą najpierw je zresetować.
- GstToc ma nowy interfejs API do oznaczania GstTocEntries jako pętli.
- Nieautoryzowany błąd zasobu został zdefiniowany w celu powiadamiania aplikacji, które nie uzyskały dostępu do zasobu z powodu braku autoryzacji i odróżnienia tego przypadku od innych. Ta zmiana jest już w wersji 1.2.4.
- GstPad ma nową flagę "accept-intersect", która pozwoli domyślnemu programowi obsługi zapytań ACCEPT_CAPS zrobić przecięcie zamiast sprawdzania podzbioru. Jest to interesujące dla elementów parsera, które mogą obsługiwać niekompletne pułapy.
- GstCollectPads obsługuje teraz opróżnianie i domyślną obsługę zdarzeń SEEK.
- Nowy pomocniczy obiekt GstFlowAggregator upraszczający obsługę zwrotów przepływu w elementach z wieloma padami źródłowymi. Dodatkowo GstPad teraz zawsze przechowuje ostatnią deklarację przepływu i dostarcza interfejs API, aby ją pobrać.
- GstSegment ma nowy interfejs API, który kompensuje czas pracy o określoną wartość i jest używany w GstPad, aby umożliwić dodatnie i ujemne przesunięcia w gst_pad_set_offset () we wszystkich sytuacjach.
- Obsługa h265 / HEVC i VP8 została dodana do biblioteki kodeków i bibliotek parserów kodeków i została zintegrowana z różnymi elementami.
- Dodano API do dostosowania sprawdzania poprawności TLS połączenia RTSP.
- Biblioteka RTSP i SDP obsługuje teraz MIKEY (RFC 3830), a interfejs API umożliwia rozróżnianie różnych profili RTSP.
- API, aby uzyskać dostęp do informacji o czasie i statystykach RTP.
- Dodano obsługę rtpbin dla strumieni pomocniczych.
- Dodano obsługę kafelkowanych, nieprzetworzonych formatów wideo.
- GstVideoDecoder i GstAudioDecoder mają interfejs API, który pomaga w agregowaniu zdarzeń tagów i łączeniu w nie niestandardowych tagów.
- GstBufferPool obsługuje teraz funkcję płukania.
- playbin / playsink obsługuje filtry audio i wideo dostarczane przez aplikacje.
- GstDiscoverer ma nowy i uproszczony interfejs API, aby uzyskać szczegółowe informacje na temat brakujących wtyczek i informacji przekazywanych do instalatora wtyczek.
- Biblioteka GL została scalona z gst-plugins-gl do gst-plugins-bad, zapewniając ogólną infrastrukturę do obsługi GL wewnątrz potoków GStreamer i wtyczkę z niektórymi elementami z nich korzystającymi, zwłaszcza zlewem wideo. Obsługiwane platformy to obecnie platformy Android, Cocoa (OS X), DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) oraz ogólne platformy X11, Wayland i EGL. To zastępuje eglglessink, a także ma zastąpić osxvideosink.
- Nowa klasa podstawowa GstAggregator w gst-plugins-bad. Ma to na celu zastąpienie GstCollectPads w przyszłości i naprawienie długo znanych niedociągnięć w jego API. Wraz z klasą podstawową dostarczane są już pewne elementy, takie jak videomixer (compositor).
- Główne zmiany:
- Nowe wtyczki i elementy:
- Element v4l2videodec do uzyskiwania dostępu do kodeków sprzętowych na platformach, które udostępniają je za pośrednictwem V4L2, np. Samsung Exynos. Wiąże się to z głównym refaktoryzacją istniejących elementów V4L2 i odpowiednią infrastrukturą. Element v4l2videodec zastępuje element mfcdec.
- Nowy element buforowania pobierania, który zastępuje funkcję buforowania pobierania w kolejce2. W porównaniu do kodu kolejki2 jest znacznie prostszy i tylko w tym przypadku jednorazowego użytku. Godną uwagi nową cechą jest pobieranie luk w już pobranych częściach strumienia, gdy nic innego nie zostanie pobrane. To jest teraz używane przez playbin, gdy włączone jest buforowanie pobierania.
- rtpstreampay i rtpstreamdepay elementy do transmisji pakietów RTP przez API strumienia (np. TCP) zgodnie z RFC 4571.
- Elementy rtprtx do standardowej, zgodnej implementacji retransmisji, zintegrowane z wtyczką rtpmanager.
- Element audiomixer, który łączy wiele strumieni audio w jeden, zachowując synchronizację. Planowane jest zastąpienie elementu sumatora.
- Wtyczka OpenNI2 do kamer 3D, takich jak kamera Kinect.
- Wtyczka OpenEXR do dekodowania obrazów EXR o wysokim zakresie dynamiki.
- curlsshsink i curlsftpsink do zapisu plików przez SSH / SFTP.
- Videoignal, ivfparse i sndfile pluginy przeniesione z wersji 0.10.
- avfvideosrc, vtdec i inne elementy zostały przeniesione z wersji 0.10 i są teraz dostępne na OS X i iOS.
- Inne zmiany:
- gst-libav używa teraz libav 10.1 i uzyskał wsparcie dla H265 / HEVC.
- Poprawiono obsługę kodeków sprzętowych i specjalnych typów pamięci dzięki poprawkom i dodatkom w różnych wtyczkach i klasach bazowych.
- Różne poprawki i ulepszenia buforowania w elementach queue2 i multiqueue.
- dvbsrc obsługuje teraz więcej mechanizmów dostarczania i innych funkcji, w tym obsługę DVB S2 i T2.
- Biblioteka MPEGTS obsługuje wiele innych deskryptorów.
- Główne udoskonalenia tsdemux i tsparse, szczególnie czas i poszukiwanie powiązane.
- souphttpsrc ma teraz obsługę utrzymywania połączeń, kompresji, konfigurowalnej liczby ponownych prób i konfiguracji do sprawdzania certyfikatów SSL.
- hlsdemux przeszedł poważną refaktoryzację i teraz działa bardziej niezawodnie i obsługuje więcej funkcji HLS, takich jak tryby trick. Fragmenty są przesyłane dalej, gdy są pobierane teraz, zamiast czekać na zakończenie każdego fragmentu.
- dashdemux i mssdemux teraz przesyłają fragmenty podczas pobierania, zamiast czekać na zakończenie każdego fragmentu.
- videoflip może automatycznie przerzucać w oparciu o znacznik orientacji.
- openjpeg obsługuje interfejs API OpenJPEG2.
- waylandsink został refaktoryzowany i teraz powinien być bardziej przydatny. Zawiera również małą bibliotekę, która najprawdopodobniej zostanie usunięta w przyszłości i spowoduje rozszerzenie interfejsu GstVideoOverlay.
- gst-rtsp-server obsługuje teraz SRTP i MIKEY.
- Enkodery gst-libav negocjują obecnie wszelkie ustawienia profilu / poziomu za pomocą limitów dolnych.
- Wiele poprawek dotyczących ostrzeżeń o pokryciu w każdym miejscu.
- Ulepszenia wydajności związane z negocjacjami.
- Ponad 800 poprawionych raportów o błędach i wiele innych poprawek oraz innych ulepszeń wszędzie tam, gdzie nie ma raportu o błędach.
- Rzeczy, na które należy zwrócić uwagę:
- Element eglglessink został usunięty i zastąpiony elementem glimagesink.
- Element mfcdec został usunięty i zastąpiony przez v4l2videodec.
- Osxvideosink jest dostępny tylko w OS X 10.6 lub nowszym.
- Na Androidzie przestrzeń nazw automatycznie generowanej klasy Java do inicjalizacji GStreamera zmieniła się z com.gstreamer na org.freedesktop.gstreamer, aby zapobiec zanieczyszczaniu przestrzeni nazw.
- W systemie iOS należy zaktualizować gst_ios_init.h i gst_ios_init.m w swoich projektach z wersji uwzględnionej w plikach binarnych, jeśli wcześniej korzystano z modułu GnuTLS GIO. Mechanizm ładujący nieznacznie się zmienił.
Co nowego w wersji 1.2.4:
- Rdzeń GStreamer:
- 724373: Queue2 obcina swój plik tymczasowy po wstrzymaniu potoku
- 725517: docs: Napraw błędy i usuń nieznane adnotacje
- 725809: ghostpad: rzadka awaria z powodu braku licznika odwołań na docelowej konsoli
- 727253: parsowanie: Plik wygenerowany przez Bison zawarty w paczkach wydania powoduje błędy kompilacji
- 727883: baseparse: przeciek pamięci ramek kolejki
- Baza wtyczek GStreamer:
- 693263: typefinding: wideo MPEG-2 ES wykryte jako H.263
- 683504: playback: deadlock przy wyłączaniu napisów i suboptymalnym wyłączaniu napisów
- 700770: typefinding: plik MP3 nieprawidłowo wykryty jako wideo h263
- 723597: tagdemux: Zdarzenie Seek w GST_FORMAT_TIME jest konwertowane na BYTES na wczesny
- 724633: oggdemux: ignoruje ostatnią stronę w trybie push
- 724720: rtspconnection: nie można odłączyć / ponownie połączyć połączenia odczytywanego w trybie tunelowym
- 725313: rtspconnection: callback closed () nigdy nie jest wywoływany w trybie tunelowym
- 725644: typefinding: plik mp3 jest wykrywany jako H.263
- 726642: rtspconnection: niewielki wyciek pamięci podczas obsługi błędów
- 727025: adder: przeprowadź ponownie logikę, aby sprawdzić, czy eos ma zostać wysłany.
- Wtyczki GStreamer:
- 725104: qtdemux: odtwarzanie wstecz i awaria przełączania strumienia wideo
- 722185: souphttpsrc: racy & quot; serwer nie obsługuje wyszukiwania & quot; błąd
- 724619: awaria podczas odczytu właściwości nazwy urządzenia pulsesink
- 725124: rtspsrc: Naprawianie blokady, gdy tworzenie zadań nie powiedzie się
- 725712: rtpsession: Zawieszanie przy otrzymaniu RTCP FIR z nieznanym SSRC
- 725860: v4l2src: Napraw za pomocą v4l2src z urządzeniem przechwytującym wideo Hauppauge HDPVR
- 726777: rtpjpegpay: rozmiar ładunku nie został poprawnie obliczony
- 728017: Nie można wysłać zdarzenia eos [regresja] z gstrtpjitterbuffer.
- 728041: rtph264depay: zaznacza wszystkie bufory wyjściowe jako jednostki delta podczas wyprowadzania formatu avc
- 724638: aacparse: Brakująca rezystancja, gdy nie znaleziono ramki audio
- 727329: sprawdź: souphttpsrc: nieznany typ nazwy "SoupStatus"
- Wtyczki GStreamer Bad:
- 724013: Ścieżka hardcode / usr / share / sounds / sf2 w fluiddec
- 725137: hlsdemux: nie można obliczyć adresu URL listy odtwarzania multimediów, jeśli istnieje parametr zapytania
- 725140: hlsdemux: nie może prawidłowo parsować CODECS i RESOLUTION
- Wtyczki GStreamer libav:
- 727779: avdec_h264, matroskademux: crash podczas wyszukiwania (1.2 regresja)
Co nowego w wersji 1.2.2:
- Seria wydań 1.2 dodaje nowe funkcje na szczycie serii 1.0 i jest częścią serii wydań API i ABI-stable 1.x z frameworka multimedialnego GStreamer, który zawiera nowe funkcje.
Co nowego w wersji 1.2.0:
- Nowy interfejs API:
- GstContext negocjacja / udostępnianie / ogłaszanie w celu udostępnienia ogólnego kontekstu między elementami, np. uchwyt wyświetlacza
- Metryka konwersji przesyłania tekstur GL dla umożliwienia konwersji różnych typów buforów do tekstury OpenGL
- GstCapsFeatures jako rozszerzenie GstCaps umożliwiające negocjowanie określonych wymagań pamięci lub meta między elementami
- Flagi GstMemory dla pamięci ciągłej i niemapowanej
- Zdarzenie uruchomienia strumienia ma teraz opcjonalne flagi, np. do sygnalizowania nielicznych strumieni
- Strumień startu ma nawet opcjonalne pole identyfikatora grupy, które sygnalizuje wszystkie strumienie, które powinny być odtwarzane razem
- Biblioteka alokatorów w gst-plugins-base, obecnie tylko z ogólną obsługą pamięci dmabuf
- biblioteka insertbin dla łatwiejszej obsługi dynamicznie połączonych potoków (na razie jest to -bad)
- Biblioteka pomocników EGL (na razie funkcja -bad)
- Biblioteka struktury danych MPEG-TS (obecnie -bad)
- Nowy GstVideoRegionOfInterestMeta, aby opisać region zainteresowania na klatkach wideo.
- GstVideoDecoder / Encoder ma nowy :: flush () vfunc, który zastąpi źle zdefiniowany :: reset () vfunc.
- Kwerenda URI umożliwia teraz zapytanie o przekierowany URI.
- Główne zmiany:
- Nowe narzędzie: gst-play-1.0 w gst-plugins-base do podstawowego testowania odtwarzania w linii poleceń.
- Nowe wtyczki:
- mssdemux dla Microsoft Smooth Streaming
- dashdemux dla protokołu adaptacyjnego strumieniowania DASH
- bluez do interakcji z urządzeniami Bluetooth
- openjpeg do dekodowania i kodowania JPEG2000
- daala do eksperymentalnego dekodowania i kodowania Daala
- Wtyczka vpx ma eksperymentalną obsługę dekodowania i kodowania VP9
- wtyczka webp do dekodowania WebP (kodowanie zostanie dodane później)
- Różne inne: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip i audiofxbad
- Przeniesione wtyczki:
- Wtyczki dtmf, vp8rtp, scaletempo i rtpmux są teraz w gst-plugins-good
- Wideo:
- Napraw obsługę wideo z przeplotem w konwerterach, takich jak wideocale i wideokonwersja (np. skaluj oba pola niezależnie)
- wideokonferencja będzie się starać, aby zminimalizować straty jakości, gdy konwersja jest konieczna.
- Eksperymentalne interfejsy API GstSurfaceConverter, GstSurfaceMeta i GstVideoContext z (myląco nazwanej) biblioteki libgstbasevideo-1.0 w gst-plugins-bad zostały teraz usunięte i zastąpione nowymi API w GStreamer Core i gst-plugins-base (zobacz wyżej ). Ponieważ to wszystko zostało w tej bibliotece, cała eksperymentalna biblioteka libgstbasevideo-1.0 została usunięta z gst-plugins-bad
- Podpróbkowanie Chroma i konwersja w chroma są lepiej obsługiwane w trybie wideokonferencyjnym, a obsługa filmów z przeplotem uległa poprawie.
- Nowe wzory wiatraczków i szprych w videotestsrc
- videomixer może teraz akceptować różne formaty wideo na swoich zlewach i konwertuje do wspólnego formatu podczas miksowania
- Dźwięk:
- audioconvert będzie starał się zminimalizować straty jakości, gdy konieczna jest konwersja
- adder pozwala teraz na wyciszanie / ignorowanie jego strumieni wejściowych, a także na strumień danych wejściowych strumienia
- Elementy pulseaudio mogą teraz przełączać się pomiędzy urządzeniami
- aacparse może konwertować pomiędzy ADTS ← -> RAW
- Zmiany dotyczące platformy:
- Czapki, zdarzenia itp. są teraz drukowane w dziennikach debugowania GStreamer z ich zawartością, a nie tylko z adresu wskaźnika, nawet na platformach innych niż glibc (np. Windows, OSX, Android).
- Elementy sieciowe (UDP / TCP) działają teraz lepiej na platformach, w których gniazda IPv6 nie obsługują IPv4 (np. Windows)
- Linux / BSD: v4l2 miał wiele ulepszeń i porządków
- Inne zmiany:
- gst-libav używa teraz libav 9
- Statyczne połączenie wtyczek jest teraz obsługiwane (również w wersji 1.0.7)
- rtspsrc: dodaj obsługę NetClientClock: gdy serwer sugeruje GstNetTimeProvider w SDP, skonfiguruj GstNetClientClock, który podporządkował się zegarowi zdalnemu i zasugeruj ten zegar w parametrze provide_clock. Upraszcza zsynchronizowane odtwarzanie zasobów z serwera RTSP. gst-rtsp-server obsługuje teraz dodanie tego do SDP i może dostarczyć zegar sieciowy
- Obsługa retransmisji RTP / NACK i duże ulepszenia bufora jittera RTP
- Obsługa SRTP i DTLS
- Zmienia wiele elementów i rdzeń, aby używać prawidłowej kolejności zdarzeń losowych, a także nie utracić ważnych ważnych zdarzeń podczas spłukiwania.
- & gt; 1000 poprawionych raportów o błędach oraz wiele innych poprawek i innych ulepszeń wszędzie tam, gdzie nie ma raportu o błędzie
- Rzeczy, na które należy zwrócić uwagę:
- Pojedynczy nagłówek obejmuje wszystkie biblioteki, np. #include - to było potrzebne w przypadku niektórych powiązań.
- Surowsze (poprawne) sprawdzanie podzbiorów czapek w niektórych przypadkach, w których wcześniej nie było to prawidłowe. Czapki będą teraz zawsze nie być kompatybilnym podzbiorem innego zestawu czapek, jeśli w limitach podzbiorów brakuje niektórych pól, które mają limity. Może to prowadzić do niezgłoszonych błędów, jeśli czapki są teraz niekompletne. Zapobiega to jednak również możliwemu uszkodzeniu danych spowodowanemu przez wyprowadzanie danych w formacie niekompatybilnym / nieoczekiwanym na niektóre elementy. Sprawdź czapki h264 dla pól formatowania strumienia i wyrównania oraz czapki AAC dla pola formatu strumienia. Ta zmiana zostanie również uwzględniona w kolejnej stabilnej wersji 1.0.8.
- Bardziej rygorystyczne sprawdzanie brakujących zdarzeń i poprawianie kolejności zdarzeń losowych (stream-start, caps, segment) w niektórych miejscach; opcja ta nie jest domyślnie włączona w stabilnych wydaniach, ale możesz otrzymywać ostrzeżenia podczas korzystania z kompilacji git, wydań rozwojowych lub podczas kompilacji z opcją -UG_DISABLE_ASSERT w CFLAGS
- x264enc teraz domyślnie wyprowadza dane w strumieniu bajtów, jeśli w dalszej części znajduje się DOWOLNE czapki (np. appsink bez zestawu czapek, filesink, udpsink, tcpserversink itp.)
- Komunikaty o demukcie MPEG TS zawierają teraz PMT, PAT itp. w innym formacie. Ten nowy format wykorzystuje struktury danych z nowej biblioteki MPEGTS
- Interfejs API GstContext zmienił się między 1.1.4 a 1.1.90
Co nowego w wersji 1.1.4:
- Nowy interfejs API:
- GstContext negocjacja / udostępnianie / ogłaszanie w celu udostępnienia ogólnego kontekstu między elementami, np. uchwyt wyświetlacza
- Metryka konwersji przesyłania tekstur GL dla umożliwienia konwersji różnych typów buforów do tekstury OpenGL
- GstCapsFeatures jako rozszerzenie GstCaps umożliwiające negocjowanie określonych wymagań pamięci lub meta między elementami
- Flagi GstMemory dla pamięci ciągłej i niemapowanej
- Zdarzenie uruchomienia strumienia ma teraz opcjonalne flagi, np. do sygnalizowania nielicznych strumieni
- Strumień startu ma nawet opcjonalne pole identyfikatora grupy, które sygnalizuje wszystkie strumienie, które powinny być odtwarzane razem
- Biblioteka alokatorów w gst-plugins-base, obecnie tylko z ogólną obsługą pamięci dmabuf
- biblioteka insertbin dla łatwiejszej obsługi dynamicznie połączonych potoków (na razie jest to -bad)
- Biblioteka pomocników EGL (na razie funkcja -bad)
- Biblioteka struktury danych MPEG-TS (obecnie -bad)
- Nowy GstVideoRegionOfInterestMeta, aby opisać region zainteresowania na klatkach wideo.
- GstVideoDecoder / Encoder ma nowy :: flush () vfunc, który zastąpi źle zdefiniowany :: reset () vfunc.
- Kwerenda URI umożliwia teraz zapytanie o przekierowany URI.
- Główne zmiany:
- Nowe narzędzie: gst-play-1.0 w gst-plugins-base do podstawowego testowania odtwarzania w linii poleceń.
- Nowe wtyczki:
- mssdemux dla Microsoft Smooth Streaming
- dashdemux dla protokołu adaptacyjnego strumieniowania DASH
- bluez do interakcji z urządzeniami Bluetooth
- openjpeg do dekodowania i kodowania JPEG2000
- daala do eksperymentalnego dekodowania i kodowania Daala
- Wtyczka vpx ma eksperymentalną obsługę dekodowania i kodowania V9
- wtyczka webp do dekodowania WebP (kodowanie zostanie dodane później)
- Różne inne: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip i audiofxbad
- Przeniesione wtyczki:
- Wtyczki dtmf, vp8rtp, scaletempo i rtpmux są teraz w gst-plugins-good
- Wideo:
- Napraw obsługę wideo z przeplotem w konwerterach, takich jak wideocale i wideokonwersja (np. skaluj oba pola niezależnie)
- wideokonferencja będzie się starać, aby zminimalizować straty jakości, gdy konwersja jest konieczna.
- Eksperymentalne interfejsy API GstSurfaceConverter, GstSurfaceMeta i GstVideoContext z (myląco nazwanej) biblioteki libgstbasevideo-1.0 w gst-plugins-bad zostały teraz usunięte i zastąpione nowymi API w GStreamer Core i gst-plugins-base (zobacz wyżej ). Ponieważ to wszystko zostało w tej bibliotece, cała eksperymentalna biblioteka libgstbasevideo-1.0 została usunięta z gst-plugins-bad.
- Podsycanie podcastu Chroma i jego lokalizacja są lepiej obsługiwane w wideokonferencji
- Nowe wzory wiatraczków i szprych w videotestsrc
- Dźwięk:
- adder pozwala teraz na wyciszanie / ignorowanie jego strumieni wejściowych, a także na strumień danych wejściowych strumienia
- Elementy pulseaudio mogą teraz przełączać się pomiędzy urządzeniami
- aacparse może konwertować pomiędzy ADTS ← -> RAW
- Zmiany dotyczące platformy:
- Czapki, zdarzenia itp. są teraz drukowane w dziennikach debugowania GStreamer z ich zawartością, a nie tylko z adresu wskaźnika, nawet na platformach innych niż glibc (np. Windows, OSX, Android).
- Elementy sieciowe (UDP / TCP) działają teraz lepiej na platformach, w których gniazda IPv6 nie obsługują IPv4 (np. Windows)
- Windows: d3dvideosink udostępnia pulę buforów dla elementów upstream
- Linux / BSD: v4l2 miał wiele ulepszeń i porządków
- Inne zmiany:
- gst-libav używa teraz libav 9
- Statyczne połączenie wtyczek jest teraz obsługiwane (również w wersji 1.0.7)
- rtspsrc: dodaj obsługę NetClientClock: gdy serwer sugeruje GstNetTimeProvider w SDP, skonfiguruj GstNetClientClock, który podporządkował się zegarowi zdalnemu i zasugeruj ten zegar w parametrze provide_clock. Upraszcza zsynchronizowane odtwarzanie zasobów z serwera RTSP. gst-rtsp-server obsługuje teraz dodanie tego do SDP i może dostarczyć zegar sieciowy
- Obsługa retransmisji RTP / NACK i duże ulepszenia bufora jittera RTP
- Obsługa SRTP i DTLS
- Zmienia wiele elementów i rdzeń, aby używać prawidłowej kolejności zdarzeń losowych, a także nie utracić ważnych ważnych zdarzeń podczas spłukiwania.
- & gt; 1000 poprawionych raportów o błędach oraz wiele innych poprawek i innych ulepszeń wszędzie tam, gdzie nie ma raportu o błędzie
- Rzeczy, na które należy zwrócić uwagę:
- Pojedynczy nagłówek obejmuje wszystkie biblioteki, np. #include - to było potrzebne w przypadku niektórych powiązań.
- Surowsze (poprawne) sprawdzanie podzbiorów czapek w niektórych przypadkach, w których wcześniej nie było to prawidłowe. Czapki będą teraz zawsze nie być kompatybilnym podzbiorem innego zestawu czapek, jeśli w limitach podzbiorów brakuje niektórych pól, które mają limity. Może to prowadzić do niezgłoszonych błędów, jeśli czapki są teraz niekompletne. Zapobiega to jednak również możliwemu uszkodzeniu danych spowodowanemu przez wyprowadzanie danych w formacie niekompatybilnym / nieoczekiwanym na niektóre elementy. Sprawdź czapki h264 dla pól formatowania strumienia i wyrównania oraz czapki AAC dla pola formatu strumienia. Ta zmiana zostanie również uwzględniona w kolejnej stabilnej wersji 1.0.8.
- Bardziej rygorystyczne sprawdzanie brakujących zdarzeń i poprawianie kolejności zdarzeń losowych (stream-start, caps, segment) w niektórych miejscach; opcja ta nie jest domyślnie włączona w stabilnych wydaniach, ale możesz otrzymywać ostrzeżenia podczas korzystania z kompilacji git, wydań rozwojowych lub podczas kompilacji z opcją -UG_DISABLE_ASSERT w CFLAGS
- x264enc teraz domyślnie wyprowadza dane w strumieniu bajtów, jeśli w dalszej części znajduje się DOWOLNE czapki (np. appsink bez zestawu czapek, filesink, udpsink, tcpserversink itp.)
Komentarze nie znaleziono