Zu hohe Latenz mit dem PipeWire-Soundserver
Mit PipeWire als Soundserver nutzt die Musiksoftware Jamulus einen großen Puffer und hat dadurch hohe Latenz. Wie kann ich eine kleinere Puffergröße erzwingen?
Ich habe PipeWire als Soundserver eingerichtet. Für Programme, die über JACK-Schnittstellen auf PipeWire zugreifen, habe ich die Puffergröße in der Konfigurationsdatei auf 128 Samples herabgesetzt. Wenn ich, um mit anderen übers Internet zu musizieren, die Musiksoftware Jamulus starte, dann sehe ich in deren Einstellungen eine Puffergröße von 1024 und eine Latenz von über 40 Millisekunden. Wie kann ich mit PipeWire eine niedrige Latenz erzwingen?
Legen Sie vor Aufruf des Programms die gewünschten Werte in der Umgebungsvariable PIPEWIRE_LATENCY fest. Öffnen Sie dazu ein Terminal und stellen Sie die Variable dem Befehl zum Starten des Programms voran. Im folgenden Beispiel wird ein per Flatpak installiertes Jamulus mit einer Puffergröße von 128 Samples gestartet:
PIPEWIRE_LATENCY=128/48000 flatpak run io.jamulus.Jamulus
Die erste Zahl gibt die Puffergröße an und der zweite Wert die Samplerate (hier 48 kHz).
Wenn Sie nachträglich die Puffergröße anpassen oder das Programm nicht über ein Terminal starten möchten, gibt es eine Alternative. Forcieren Sie über den Befehl pw-metadata die gewünschte Puffergröße:
pw-metadata -n settings 0 clock.force-quantum 128
Diese Puffergröße ("Quantum") gilt für alle Programme und ändert sich erst, wenn Sie diese mit pw-metadata oder einem JACK-Client anpassen. Geben Sie 0 statt 128 an, um Pipewire wieder auf eine dynamische Puffergröße umzuschalten.
(ktn)