FOSDEM: Multimedia-Streaming unter Linux – PipeWire bekommt einen Sessionmanager

Das Processing-Framework "PipeWire" für Audio-/Videostreams unter Linux bekommt einen Sessionmanager zur Streamkontrolle, angeregt von der Automotive-Branche.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
FOSDEM: Multimedia-Streaming unter Linux – PipeWire bekommt einen Sessionmanager

(Bild: heise online)

Lesezeit: 3 Min.
Von
  • David Wolski
Inhaltsverzeichnis

Im Laufe seiner noch recht kurzen Entwicklung hat PipeWire zur Verarbeitung von Multimediastreams auf dem Linux-Desktop eine bemerkenswerte Wandlung hingelegt: Zunächst sollte sich PipeWire nur um Videoausgaben kümmern und unter Display-Managern mit dem Wayland-Protokoll Remote-Desktop-Verbindungen möglich machen. Zu diesem Zweck wurde PipeWire unter der Ägide von Red Hat entworfen und schon in Fedora 27 in einer Vorschauversion ausgeliefert. Die Köpfe hinter PipeWire, die zuvor schon für das Multimedia-Framework Gstreamer von Gnome verantwortlich waren, bezeichneten ihr Projekt auch gerne als das "Pulse Audio für Videostreams".

Open-Source-Konferenz FOSDEM 2020

Als weiter gestecktes Ziel kamen neben der Verarbeitung von Videostreams auch Audiostreams hinzu. PipeWire wird nun als Nachfolger und Ergänzung der Soundserver Pulse Audio und Jack weiterentwickelt. Eine wichtige Rolle nimmt PipeWire auf dem Linux-Desktop vor allem aus Sicherheitsaspekten bei Anwendungen in App-Containern ein: So dürfen App-Container wie Flatpak nicht direkt auf Grafikkarte, Soundchip oder auf die Bildschirmausgabe anderer Anwendungen zugreifen. PipeWire arbeitet dazu als Zwischenschicht zwischen App-Containern und den Grafikprotokollen des Display-Servers sowie der Audiohardware zur Ausgabe eines Multimediastreams.

Mit diesen Eigenschaften ist PipeWire nun auch für die Automotive-Branche und deren Entwicklung von In-Car-Systemen und Infotainment-Systemen relevant. George Kiagiadakis wirkt nicht nur an PipeWire mit, sondern auch an Automotive Grade Linux (AGL) und zeigte in einem kompakten Talk "PipeWire in the Automotive Industry" auf der FOSDEM-Konferenz in Brüssel, wie das Multimedia-Framework in diesem Anwendungsbereich bisherige Lösungen komplett ersetzt.

In-Car-Systeme verfügen anders als Desktop-PCs stets über mehrere Audio-Subsysteme mit Eingabe- und Ausgabeschnittstellen. Einige Audiostreams, etwa jener des Infotainment-Systems, sollen beim Abspielen von Musik ohne Umwege auf das Audioausgabegerät zugreifen. Dabei gilt es, eine strenge Hierarchie zu beachten, die Audiostreams mit unterschiedlicher Priorität versieht. Warnsignale des Fahrzeugcomputers verlangen schon aus Sicherheitsgründen eine bevorzugte Behandlung. Gleichzeitig soll die Soundausgabe von Apps oder dem Infotainmentsystem in diesem Fall stumm oder leise geschaltet werden.

WirePlumber: Der neue Sessionmanager für PipeWire setzt vordefinierte Policies durch, die Streams sowie deren Zugriff auf Ein- und Ausgabegeräte steuern.

(Bild: FOSDEM)

PipeWire enthält zwar ein Sicherheitskonzept, das Apps und deren Multimediastreams voneinander abschottet, kann aber Streams nicht mit Policies verwalten. Deshalb hat PipeWire für Automotive Grade Linux einen eigenen Sessionmanager bekommen, der mit vordefinierten, eventgesteuerten Richtlinien vorgibt, welcher Stream auf bestimmte Ein- und Ausgaberäte zugreifen darf.

Der neue Sessionmanager übernimmt durch das Regelwerk auch das Routing von Streams von und zu Audio-Endpunkten. Dieser neue Sessionmanager namens "WirePlumber" stellt dazu eine PipeWire-API über das Objektsystem GObject bereit und ist bereits im Github-Repository des Mutterprojekts aufgenommen. Wireplumber soll in absehbarer Zeit auch auf Desktop-Linux-Systemen die Fähigkeiten von PipeWire erweitern und eine Scripting-Schnittstelle bekommen, welche die vorerst noch starren Policies zur Laufzeit des PipeWire-Daemons ändern kann. (tiw)