Multimedia-Framework: GStreamer 1.20 bündelt seine Komponenten in ein Monorepo

Das erweiterbare Multimedia-Framework besteht aus einer 500 KByte kleinen Core Library sowie verschiedenen Modulen. Nun erhält es ein GitLab-Monorepo.

In Pocket speichern vorlesen Druckansicht 12 Kommentare lesen

(Bild: Peeravit/Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

GStreamer ist in Version 1.20 erschienen. Das unter dem Dach von freedesktop.org entwickelte quelloffene Multimedia-Framework dient dem Erstellen von Streaming-Medienanwendungen. Es ist modular aufgebaut und lässt sich unter Linux, Windows, macOS, iOS und Android nutzen. Das Feature Release 1.20 bringt neue Funktionen wie die High-Level-Playback-Bibliothek GstPlay und verfolgt nun das Monorepo-Prinzip.

Das Open-Source-Framework GStreamer besteht aus einem Set von Bibliotheken und Plug-ins, die sich auf verschiedene, einzeln veröffentlichte Module aufteilen. Deren Entwicklung fand bisher in separaten Git-Repositorys unter freedesktop.org GitLab statt – im Jahr 2018 hatte sich freedesktop.org für GitLab entschieden. Für den Download- und Build-Prozess stand ein gst-build-Modul unter Verwendung des Build-Systems Meson zur Verfügung.

Mit Version 1.20 bündelt das GStreamer-Team alle Module in einem einzigen Repository, das im neuen main-Branch zu finden ist. Es soll Entwicklungs-Workflows und Continuous Integration vereinfachen und sich besonders bei gleichzeitigen Änderungen an mehreren Modulen positiv auswirken. Einzig die Rust-Bindings und -Plug-ins haben noch keinen Einzug in das Monorepo gehalten, da sie einem anderen Releasezyklus folgen.

GStreamer 1.20 bringt die neue High-Level-Playback-Bibliothek GstPlay mit, um die ältere GstPlayer-API zu ersetzen. Diese soll in Zukunft eine Markierung als deprecated (veraltet) erhalten und zu einem späteren Zeitpunkt – möglicherweise in GStreamer 1.24 – entfallen. Das GStreamer-Team empfiehlt Entwicklerinnen und Entwicklern daher, frühzeitig zur neuen API zu migrieren.

Neben weiteren Neuerungen sind einige neue Rust-Plug-ins an Bord, darunter audiornnoise zum Entfernen von Rauschen aus einem Audiostream und ccdetect zum Erkennen gültiger geschlossener Untertitel (Closed Captions).

Das in der Programmiersprache C geschriebene Multimedia-Framework GStreamer basiert auf dem GLib-2.0-Objektmodell GObject und besitzt eine weniger als 500 KByte große Core Library mit etwa 65.000 Codezeilen. Es stellt eine stabile API für Plug-in- und Anwendungsentwickler bereit und lässt sich mittels Plug-ins um weitere Funktionen erweitern. Zudem soll es eine hohe Performance und eine geringe Latenz an den Tag legen und hat ein komplettes Debugging-System mit an Bord.

GStreamer lässt sich unter Linux mithilfe eines Paketmanagers installieren. Für macOS, Windows, Android und iOS stehen Binärpakete bereit. Grundlegende sowie Android- und iOS-spezifische Anwendungsfälle sind in Tutorials abgedeckt, die in C geschrieben sind.

Alle neuen Features in GStreamer 1.20 sind den offiziellen Release Notes zu entnehmen.

(mai)