Gstreamer 1.14.0 ist die nächste Major Release des Multimedia-Frameworks, das neuerdings nicht nur Web-RTC, sondern auch zahlreiche neue Codecs und Protokolle unterstützt.
Echtzeit-Streaming zum und vom Webbrowser per Web-RTC ist nur eine der Neuerungen von Gstreamer 1.14.0. Dabei kommen ein “webrtcbin”-Element und eine Web-RTC-Support-Bibliothek zum Einsatz. Mit deren Hilfe bauen Anwendungen Verbindungen zu Web-RTC-Peers auf, zugleich nutzen sie weiterhin die Gstreamer-Features wie hardwarebeschleunigtes Encoding und Decoding. Noch sei die Implementierung nicht komplett, aber die wichtigen Punkte seien abgedeckt, schreiben die Entwickler.
Experimentell unterstützt Gstreamer nun AV1, den Open-Source-Nachfolger von VP9, der mit HEVC/H.265 konkurrieren soll. Ihn nutzen die Anwender über die Elemente “av1enc” und “av1dec”, wobei Gstreamer mit dem Matroska-Containerformat zurecht kommt. Auch den Einsatz mit Video4Linux2 optimiert das Framework, bringt Encoding-Support für VP8, VP9, MPEG4 und H.263 mit, kommt mit dynamischen Änderungen der Auflösung klar und testet verfügbare Geräte schneller.
RTSP 2.0 und SRT
Daneben bringt Gstreamer die erste Implementierung von RTSP 2.0, der neuen Version des Real Time Streaming Protocol. Den entsprechenden Standard hatte die IETF 2016 verabschiedet. Die Komponenten “gst-rtsp-server” und “rtspsrc” unterstützen zudem den ONVIF Audio-Rückkanal.
Auch SRT unterstützt Gstreamer 1.14. Die Abkürzung steht für Secure Reliable Transport, das Streaming-Protokoll ist dank seiner 128/256 Ende-zu-Ende-AES-Verschlüsselung nicht nur sicher, sondern auch quelloffen. Es soll sich insbesondere in für Streaming schlechten Netzwerken gut eignen. Zu den Gründern der SRT-Alliance gehören unter anderem Haivision und Wowza.
Schutz vor Paketverlust
Weiterhin bietet Gstreamer 1.14 Support für Uneven Level Protection Forward Error Correction (ULPFEC), eine der Mechanismen, mit denen unter anderem Web-RTC auf verlorene RTP-Video- und Audiopakete reagiert. Der alleinstehende Audio- und Videoplayer Playbin3 spielt Dateien nun lückenlos ab und bringt Unterstützung für Pre-Buffering mit.
Weitere Änderungen und Verbesserungen betreffen Spezialfälle oder richten sich zum Beispiel an Entwickler. So gibt es Updates für die C#-Bindings. Auch die extern betreuten Rust-Bindings für Gstreamer funktionieren besser und bilden mittlerweile fast das komplette API ab. Anmerkungen für “gobject-introspection” klappen nun für große Teile des Bibliotheks-API besser. Weitere Details zu den zahlreichen Änderungen verraten die vollständigen Release Notes.






