GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Pulsaudio-Loopback-Latenz?

Ich verwende pulseaudio Loopbacks, um meine Systemsounds und mein Mikrofon miteinander zu verbinden. Das Problem ist, dass meine Systemtöne manchmal eine Verzögerung von einer Sekunde oder sogar mehr haben. Häkchen gleichzeitig habe ich in paprefs geändert aber das hat es nicht behoben. Ich verwende dazu dieses Skript.

STREAM_MODULE=$(pactl load-module module-null-sink sink_name=StreamAudio sink_properties=device.description="StreamAudio")

pactl load-module module-loopback source=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor sink=StreamAudio latency_msec=1 >> /dev/null  
pactl load-module module-loopback source=alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono sink=StreamAudio latency_msec=1 >> /dev/null

pactl load-module module-device-manager >> /dev/null  

read -p "Loaded! Press enter to unload!"

pactl unload-module $STREAM_MODULE
pactl unload-module module-device-manager
pactl unload-module module-null-sink
pactl unload-module module-loopback

Ich habe Seiten von Google durchgesehen, aber nichts scheint es zu beheben. Gibt es etwas offensichtliches, das ich vermisse?

alsa_output.pci-0000_00_1b.0.analog-stereo.monitor sind alle meine Systemsounds.

alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono ist mein Mikrofon

Hier ist ein Beispiel, bei dem die Verzögerung 3,4 Sekunden beträgt:http://screencloud.net/v/tNAQ, während der andere Loopback viel weniger http://screencloud.net/v/suIF

hat

Soweit ich das beurteilen kann, füllt sich der Puffer aus irgendeinem Grund. Irgendwie kann ich es spülen oder so?

Akzeptierte Antwort:

Ich habe einen vorübergehenden Ausweg gefunden, aber das verwirrt mich immer noch. Ich habe ein kombiniertes Modul erstellt, und danach verknüpfe ich jede gewünschte Soundquelle mit dem kombinierten Modul, das dann zu meinen Systemsounds und zur Streaming-Senke leitet.

STREAM_MODULE=$(pactl load-module module-null-sink sink_name=StreamAudio sink_properties=device.description="StreamAudio")
COMBINE_MODULE=$(pactl load-module module-combine-sink sink_name=Combined sink_properties=device.description="Combined" slaves=StreamAudio,alsa_output.pci-0000_00_1b.0.analog-stereo)

pactl load-module module-loopback rate=44000 adjust_time=0 source=alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono sink=StreamAudio latency_msec=1 >> /dev/null

pactl load-module module-device-manager >> /dev/null  

read -p "Loaded! Press enter to unload!"

pactl unload-module $COMBINE_MODULE
pactl unload-module $STREAM_MODULE
pactl unload-module module-device-manager
pactl unload-module module-loopback

Es gibt wahrscheinlich eine Möglichkeit, die Ergebnisse von pacmd list-clients abzurufen und dann nur gültige Quellen bereinigen, ihre Ausgabe auf die kombinierte Senke ändern, aber das würde zu lange und zu komplex dauern.

Obwohl jetzt ein neues Problem auftaucht, habe ich es sogar getestet, indem ich den Befehl über das Terminal ausgeführt habe. Aus irgendeinem Grund kann ich die Ausgabesenke von Java nicht ändern. Folgendes habe ich versucht und zurückgegeben:

[email protected]:~$ pacmd move-sink-input 6421 124
Welcome to PulseAudio! Use "help" for usage information.
>>> Moved failed.

Ich habe es auch mit anderen versucht und alle haben funktioniert. 6421 ist der Java-Index und 124 der Senkenindex.

Siehe auch:Gewusst wie:Ändern Sie ein Symbol in 16.04?
Ubuntu
  1. Wie erstelle ich einen virtuellen Ausgang in Pulsaudio?

  2. Jack Vs Pulsaudio – Wie geht es schneller?

  3. Pulsaudio Loopback Audioausgabegeräte entladen?

  4. Mute Key schaltet Alsa und Pulsaudio stumm, aber hebt nur Alsa auf?

  5. Gibt es eine Möglichkeit, Alsamixer-Einstellungen außer Alsactl Store zu speichern?

So aktivieren Sie den PipeWire-Audiodienst, um PulseAudio in Ubuntu 21.04 zu ersetzen

Libpulse-Abhängigkeitsfehler – Pulsaudio kann nicht in Ubuntu neu installiert werden

Serielle Kommunikation mit geringer Latenz unter Linux

Alle ALSA-Geräte auflisten

Pipe/Mix Line In zum Ausgang in PulseAudio

Wie funktioniert die Loopback-Schnittstelle?