Das Multimedia-Framework GStreamer 1.20.0 ist verfügbar.

Nach anderthalb Jahren Entwicklung wurde GStreamer 1.20 veröffentlicht, ein plattformübergreifendes Komponenten-Framework für die Erstellung einer Vielzahl von Multimedia-Anwendungen, von Medioplayern und Audio-/Video-Datei-Convertoren bis hin zu VoIP-Anwendungen und Streaming-Systemen. Der Code von GStreamer wird unter der LGPLv2.1-Lizenz verbreitet. Gleichzeitig sind Updates für die Plugins gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20 sowie für die Bindung gst-libav 1.20 und den Streaming-Server gst-rtsp-server 20 verfügbar. Auf der API- und ABI-Ebene ist die neue Version rückwärtskompatibel mit dem Zweig 1.0. Binär-Builds werden in Kürze für Android, iOS, macOS und Windows vorbereitet (unter Linux wird empfohlen, die Pakete aus der Distribution zu verwenden).

Wichtige Verbesserungen in GStreamer 1.20:

  • Die Entwicklung auf GitLab wurde auf die Nutzung eines einheitlichen Repositories umgestellt, das für alle Module gemeinsam ist.
  • Eine neue hochgradige Bibliothek GstPlay wurde hinzugefügt, die die API GstPlayer ersetzt und ähnliche Funktionen zur Wiedergabe von Inhalten bietet, sich jedoch durch die Verwendung eines Nachrichtenschatzes zur Benachrichtigung von Anwendungen statt GObject-Signalen unterscheidet.
  • Die Unterstützung für das Dekodieren von Transparenzinformationen im WebM-Format wurde hinzugefügt, die das Abspielen von VP8/VP9-Videos mit transparenten Bereichen ermöglicht.
  • Im Codierungsprofil wurde die Unterstützung für die Konfiguration zusätzlicher anwendungsspezifischer Eigenschaften hinzugefügt.
  • Im Compositor wurde die Unterstützung für die Transformation und Mischung von Videos im Multithreading-Modus implementiert.
  • In den Klassen depayloader und payloader wurde die Unterstützung für die Verarbeitung zusätzlicher RTP-Header (RTP Header Extensions) vereinheitlicht.
  • Unterstützung für den Vorfehlerkorrekturmechanismus SMPTE 2022-1 2-D (Forward Error Correction) wurde hinzugefügt.
  • Im encodebin und transcodebin wurde für die Codecs VP8, VP9 und H.265 ein intelligenter Codierungsmodus ('smart encoding') implementiert, bei dem eine Neucodierung nur bei Bedarf erfolgt, während der bestehende Stream die meiste Zeit weitergeleitet wird.
  • Die Kompatibilität des plugins souphttpsrc mit libsoup2 und libsoup3 wurde sichergestellt.
  • Die Möglichkeit zur Dekodierung von Eingabedaten auf der Ebene der Zwischenbilder (sub-frame) wurde hinzugefügt, was ermöglicht, das Dekodieren zu starten, ohne auf ein vollständiges Bild warten zu müssen. Unterstützung für diese Optimierung wird in den Decodern OpenJPEG JPEG 2000, FFmpeg H.264 und OpenMAX H.264/H.265 aktiviert.
  • Beim Dekodieren von Videos für die Protokolle RTP, WebRTC und RTSP wird die automatische Verarbeitung von Paketverlusten, Datenbeschädigungen und Schlüsselrahmenanforderungen gewährleistet.
  • In die Verpacker der Multimedia-Container mp4 und Matroska wurde die Unterstützung für die dynamische Änderung der Codec-Daten hinzugefügt, wodurch das Profil, die Stufe und die Auflösung für eingehende H.264/H.265-Streams geändert werden können.
  • Ein Modus zum Erstellen von fragmentierten Multimedia-Containern mp4 wurde hinzugefügt.
  • Die WPE (WebKit Port for Embedded)-Plattform hat die Unterstützung für Audio integriert.
  • Die Möglichkeit, CUDA für die Umwandlung von Farbräumen, das Skalieren von Elementen und das Laden von Elementen zu verwenden, wurde hinzugefügt.
  • Für die OpenGL-Elemente glupload und gldownload wurde die Unterstützung für den NVMM (NVIDIA Memory Module)-Speicher hinzugefügt.
  • Die Unterstützung für WebRTC wurde verbessert.
  • Ein neues Plugin für die VA-API (Video Acceleration API) wurde vorgeschlagen, das mehr Decoder und Post-Processing-Elemente unterstützt.
  • Die API AppSink hat die Unterstützung für Ereignisse zusätzlich zu Puffern und Puffersammlungen erhalten.
  • In AppSrc wurden zusätzliche Einstellungen für interne Warteschlangen hinzugefügt.
  • Die Bindungen in der Programmiersprache Rust wurden aktualisiert und 26 neue Plugins, geschrieben in Rust (gst-plugins-rs), hinzugefügt.
  • Die Elemente aesdec und aesenc für die Verschlüsselung und Entschlüsselung mit dem AES-Algorithmus wurden hinzugefügt.
  • Die Elemente fakeaudiosink und videocodectestsink für Tests und Debugging wurden hinzugefügt.
  • Die Werkzeuge zur Erstellung minimalistischer GStreamer-Bauten wurden verbessert.
  • Die Möglichkeit, mit FFmpeg 5.0 zu bauen, wurde hinzugefügt.
  • Für Linux wurden Möglichkeiten für die Codecs MPEG-2 und VP9 ohne Zustandsbehaltung (Stateless) implementiert.
  • Für Windows wurde die Unterstützung von AV1 und MPEG-2 im Direct3D11/DXVA-basierten Decoder hinzugefügt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4