Pipewire: freies Multimedia-Framework reift zur Version 1.0

Nach sieben Jahren Entwicklungsarbeit erreicht das Multimedia-Framework Pipewire die Version 1.0. Auf dem Linux-Desktop soll es Pulseaudio und JACK ersetzen.

In Pocket speichern vorlesen Druckansicht 33 Kommentare lesen
Collage Pipewire 1.0

(Bild: heise.de / David Wolski)

Lesezeit: 5 Min.
Von
  • David Wolski

Pipewire lässt aufhorchen: Nach den Fortschritten der letzten Monate verpasste Hauptentwickler Wim Taymans dem Multimedia-Framework die Versionsnummer 1.0. Das ist kein kleiner Sprung, angesichts der vorherigen Version 0.3.85. Nach Meinung Taymans, als maßgeblicher Entwickler hinter dem Projekt, hat Pipewire in drei Feldern die notwendige Reife erreicht: Als Ersatz für die Schnittstelle JACK Audio, die hauptsächlich in der professionellen Musikproduktion Verwendung findet, konnte Pipewire Latenzen signifikant senken. So meistern Pipewire jetzt auch den standardisierten Stress-Test für JACK, was noch mal Anpassungen von Speichermanagement und am Scheduler voraussetzte. Zwei weitere, fehlende Puzzleteile waren die Unterstützung für das Protokoll netJACK2, um die Audioschnittstelle über ein Netzwerk zu nutzen, sowie ein Firewire-Audio-Treiber.

Auf den gängigen Linux-Desktops hat Pipewire die Nachfolge zu Pulseaudio angetreten und bildet dessen Eigenheiten nun exakt nach. Zusätzlich liefert Pipewire aber weitere Codecs wie mSBC und den neuen Bluetooth-Codec LC3. Laut seines Entwicklers gestaltete sich die Kompatibilität zu Pulseaudio um einiges schwieriger, als jene zu JACK Audio: Laut Wim Taymans zeigt Pulseaudio aufgrund seines weniger stringent gehaltenen Aufbaus häufig eigenwilliges Verhalten in Sachen Puffergrößen, Timeouts und Latenzen, die viele kleine Anpassungen im Code von Pipewire nötig machten, um es zu einem vollständig kompatiblen Drop-In-Ersatz zu machen. Den Audioanwendungen kann es so egal sein, ob Pipewire oder das ältere Pulseaudio auf dem Linux-Desktop als Soundserver agieren.

Das dritte Feld mit deutlichen Fortschritten ist die Behandlung von Videostreams, für welche Pipewire 2015 ursprünglich geschaffen wurde. So ging eine Menge Arbeit in die Anbindung von Kameras über den Stack von Libcamera. Für Videokonferenzen im Webbrowser bekam Firefox erstmals in der Version 116 im Sommer 2023 erstmals experimentelle Unterstürzung für den Webcam-Zugriff per Pipewire. Videostreams sind jetzt ebenfalls routbar, so wie zuvor schon Audiostreams. Steuerungssoftware wie Helvum und qpwgraph, die einen grafischen, virtuellen Patchbay anzeigen, arbeiten ab Pipewire 1.0 auch mit Videostreams.

Neu hinzugekommen ist eine Schnittstelle für Filter, die nicht nur eine Klangverbesserung wie Echo-Unterdrückung für Mikrophone umfassen, sondern auch verkette Effekte. So sei es mit Pipewire 1.0 und seinen Filtern laut Taymans bereits möglich, die Soundausgabe über mehrere Ausgänge mit einem 3D-Effekt zu versehen, sowie Equalizer, Delay- und Nachhall in nahezu Echtzeit ohne merkliche Latenzen aufzuschalten.

Mit den Filterketten haben die Entwickler in den nächsten Versionen weitere Pläne: Im kommenden Google Summer of Code sollen die Filter mittels Vulkan auf Videostreams ausgedehnt werden. Auf längere Sicht soll sich auch die eigene Pipewire-API etablieren, als solide und besonders Performance Alternative zu den bisher hauptsächlich von Anwendungen genutztem Wrappern für Pulseaudio und JACK.

Pipewire hat mit Wireplumber einen Sessionmanager bekommen, der mit vordefinierten, eventgesteuerten Richtlinien vorgibt, welcher Stream auf bestimmte Ein- und Ausgaberäte zugreifen darf. Audiostreams können so unterschiedliche Priorität erhalten und damit die Erlaubnis, sich zu unterbrechen. Wireplumber liegt aktuell in Version 0.4 vor und wird unter Leitung von Collabora entwickelt und soll in der bald erwarteten Ausgabe 0.5 ein überarbeitetes Eventsystem liefern, das Performance und Latenzen noch mal merklich verbessert. Wireplumber ist, was Pipewire schließlich auch für Spezialanwendungen interessant macht, etwa für In-Car-Audiosysteme. Wireplumber stammt aus dem Umfeld von Automotive Grade Linux (AGL), ist aber in das Github-Repository von Pipewire gewandert.

Auf dem Linux-Desktop ist Pipewire bereits jetzt eine der Überraschung der vergangenen Jahre, denn als Soundserver löst es viele Probleme der bisherigen Audiokomponenten: Geringere Latenzen bei geringerer Nutzung von Systemressourcen sind qualitative Verbesserung, die Pipewire deshalb vergleichsweise flott in Linux-Distributionen ankommen ließ: Fedora Linux 34 nahm Pipewire vor mehr als zwei Jahren schon als Ersatz für Pulseaudio auf, Arch Linux, Ubuntu 22.10 und Debian 12 folgten, nachdem die Vorteile schnell evident waren.

Auch die ursprünglichen Entwickler von Pulseaudio und JACK stehen dem neuen Projekt sehr aufgeschlossen gegenüber und geizen nicht mit Lorbeeren für Pipewire, die auch die aktuellen Release Notes der Version 1.0 zieren: Paul David von JACK Audio schreibt, Pipewire vereinigt jeweils die besten Aspekte von professionellen und Desktop-Soundservern. Lennart Poettering sieht Pipewire als würdigen Nachfolger zu Pulseaudio, zumal es bei der Behandlung von Audio- und Videostreams über ein funktionierendes Rechte-System verfügt, das unter Wayland und für Flatpaks essenziell ist.

(ktn)