Die neue Version des Multimedia-Streaming-Frameworks GStreamer bringt eine Fülle an Neuerungen mit, die sich vor allem auf die Videoverarbeitung beziehen. So unterstützt die Version 1.26 erstmals die Codecs LCEVC, JPEG-XS und H.266.
Das Versatile Video Coding (VVC) oder formal H.266 ist der designierte Nachfolger des derzeit beliebten H.265 (HEVC). GStreamer 1.26 kann bereits jetzt mit entsprechenden Videos umgehen. Das Framework verstaut und extrahiert entsprechende Streams (Muxing und Demuxing) derzeit aus MP4-, Matroska- und MPEG-TS-Containern. Steckt mindestens FFmpeg 7.0 im System, bietet GStreamer dessen H.266-Decoder nach außen an. Darüber hinaus steht ein Hardware-beschleunigter H.266-Decoder bereit, der die Video Acceleration API (VA-API) nutzt. Dabei kommt eine neue H.266 Decoder-Basisklasse für Hardware-beschleunigte Decoder zum Einsatz. Schließlich gibt es noch ein „h266parse“-Element nebst einigen neuen Hilfsfunktionen in der „gst-plugins-base“-Bibliothek.
Der Codec JPEG XS komprimiert die Bilder eines Videos verlustfrei und arbeitet mit geringen Latenzen. Dies wiederum prädestiniert ihn für den Einsatz in professionellen Produktionen. GStreamer 1.26 bietet sowohl Encoder als auch Decoder, die auf Intels JPEG-XS-Bibliothek fußen. GStreamer kann entsprechende Videos in MPEG-TS-Container muxen und demuxen. Das Framework unterstützt dabei den Progressive- und den Interlaced-Modus von JPEG XS. Apropos MEPG-TS: GStreamer 1.26 muxt und demuxt auch darin enthaltene VP9- und AV1-Videos, sowie SMPTE ST-2038 Datenströme.
Den dritten großen Neuzugang im Bunde stellt das Low Complexity Enhancement Video Coding (LCEVC). Dieser Standard integriert einen weiteren Datenstrom in ein bestehendes Video. Auf diese Weise kann man etwa ein Video im älteren H.264-Codec noch einmal in einem moderneren, höher komprimierenden Codec in einer Videodatei verstauen. GStreamer extrahiert diese nachträglich eingebrachten „Enhancement Layer“ aus H.264-Material und stellt LCEVC De- und Encoder bereit. Letztgenannte basieren auf dem V-Nova SDK.
Neben diesen Neuerungen bringt GStreamer 1.26 noch viele weitere Änderungen mit. So haben die Entwickler Vulkan, OpenGL und Qt besser integriert. Über den Video-Encoder „nvav1enc“ encodiert das Framework AV1-Videos Hardware-beschleunigt auf Nvidia-Grafikkarten. Weitere Arbeit floss in die Protokolle RTP, RTSP und WebRTC. Wer in der Programmiersprache Rust auf die GStreamer-Funktionen zurückgreifen möchte, erhält die entsprechenden Bindings in der stark verbesserten Version 0.23. Darüber hinaus haben die Entwickler das Modul „gst-plugins-rs“, das alle in Rust geschriebenen GStreamer-Plugins vereint, um neue Elemente und Plugins ergänzt.




