Die Latenz funktioniert unter PulseAudio unter Linux nicht

7

Ich habe zwei Sprecher. Die erste ist mit einer PCI-Karte verbunden und die zweite über Bluetooth. Sounds werden etwas früher auf der PCI-Karte abgespielt, daher möchte ich eine gewisse Latenz hinzufügen. Ich habe die Puls-Audio-GUI heruntergeladen und habe Folgendes:

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, habe ich beim "Audio Interne" (der PCI-Karte) einen Versatz von 2 Sekunden hinzugefügt.

Ich habe mit dem Befehl nachgesehen pactl list cardsund ich habe dies für die interne Karte:

Card #1
        Name: alsa_card.pci-0000_00_1b.0
        Driver: module-alsa-card.c
        Owner Module: 8
        Properties:
                alsa.card = "0"
                alsa.card_name = "HDA Intel PCH"
                alsa.long_card_name = "HDA Intel PCH at 0xf7f10000 irq 27"
                alsa.driver_name = "snd_hda_intel"
                device.bus_path = "pci-0000:00:1b.0"
                sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
                device.bus = "pci"
                device.vendor.id = "8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "1e20"
                device.product.name = "7 Series/C216 Chipset Family High Definition Audio Controller"
                device.form_factor = "internal"
                device.string = "0"
                device.description = "Audio interne"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-pci"
        Profiles:
                input:analog-stereo: Entrée Stéréo analogique (sinks: 0, sources: 1, priority: 65, available: yes)
                output:analog-stereo: Sortie Stéréo analogique (sinks: 1, sources: 0, priority: 6500, available: yes)
                output:analog-stereo+input:analog-stereo: Duplex stéréo analogique (sinks: 1, sources: 1, priority: 6565, available: yes)
                output:analog-surround-21: Sortie Surround analogique 2.1 (sinks: 1, sources: 0, priority: 1300, available: yes)
                output:analog-surround-21+input:analog-stereo: Sortie Surround analogique 2.1 + Entrée Stéréo analogique (sinks: 1, sources: 1, priority: 1365, available: yes)
                output:analog-surround-40: Sortie Surround analogique 4.0 (sinks: 1, sources: 0, priority: 1200, available: yes)
                output:analog-surround-40+input:analog-stereo: Sortie Surround analogique 4.0 + Entrée Stéréo analogique (sinks: 1, sources: 1, priority: 1265, available: yes)
                output:analog-surround-41: Sortie Surround analogique 4.1 (sinks: 1, sources: 0, priority: 1300, available: yes)
                output:analog-surround-41+input:analog-stereo: Sortie Surround analogique 4.1 + Entrée Stéréo analogique (sinks: 1, sources: 1, priority: 1365, available: yes)
                output:analog-surround-50: Sortie Surround analogique 5.0 (sinks: 1, sources: 0, priority: 1200, available: yes)
                output:analog-surround-50+input:analog-stereo: Sortie Surround analogique 5.0 + Entrée Stéréo analogique (sinks: 1, sources: 1, priority: 1265, available: yes)
                output:analog-surround-51: Sortie Surround analogique 5.1 (sinks: 1, sources: 0, priority: 1300, available: yes)
                output:analog-surround-51+input:analog-stereo: Sortie Surround analogique 5.1 + Entrée Stéréo analogique (sinks: 1, sources: 1, priority: 1365, available: yes)
                output:iec958-stereo: Sortie Stéréo numérique (IEC958) (sinks: 1, sources: 0, priority: 5500, available: yes)
                output:iec958-stereo+input:analog-stereo: Sortie Stéréo numérique (IEC958) + Entrée Stéréo analogique (sinks: 1, sources: 1, priority: 5565, available: yes)
                off: Éteint (sinks: 0, sources: 0, priority: 0, available: yes)
        Active Profile: output:analog-stereo
        Ports:
                analog-input-front-mic: Microphone avant (priority: 8500, latency offset: 0 usec, available)
                        Properties:
                                device.icon_name = "audio-input-microphone"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analo
g-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, output:iec958-stereo+input:analog-stereo
                analog-input-rear-mic: Microphone arrière (priority: 8200, latency offset: 0 usec, not available)
                        Properties:
                                device.icon_name = "audio-input-microphone"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analo
g-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, output:iec958-stereo+input:analog-stereo
                analog-input-linein: Entrée ligne (priority: 8100, latency offset: 0 usec, available)
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21+input:analog-stereo, output:analog-surround-40+input:analog-stereo, output:analog-surround-41+input:analo
g-stereo, output:analog-surround-50+input:analog-stereo, output:analog-surround-51+input:analog-stereo, output:iec958-stereo+input:analog-stereo
                analog-output-lineout: Sortie ligne (priority: 9900, latency offset: 2000000 usec, available)
                        Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-surround-21, output:analog-surround-21+input:analog-stereo, output:analog-surround-40, output:analog-surround-40+inp
ut:analog-stereo, output:analog-surround-41, output:analog-surround-41+input:analog-stereo, output:analog-surround-50, output:analog-surround-50+input:analog-stereo, output:analog-surround-51, output:analog-surround-51+input:analog-stereo
                analog-output-headphones: Casque audio (priority: 9000, latency offset: 2000000 usec, not available)
                        Properties:
                                device.icon_name = "audio-headphones"
                        Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
                iec958-stereo-output: Sortie numérique (S/PDIF) (priority: 0, latency offset: 0 usec)
                        Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:analog-stereo

Und ich habe es versucht pactl play-sample bell.ogg alsa_output.pci-0000_00_1b.0.analog-stereo. Es scheint immer augenblicklich. Die von mir eingestellte Latenz scheint nichts zu ändern, auch wenn ich Musik spiele.

Was kann ich machen?

BEARBEITEN

Mit pactl list sinkssehe ich das:

Latency: 2039815 usec, configured 40000 usec 

Es scheint also, dass die Latenz richtig eingestellt ist, aber es scheint sofort zu sein, wenn ich einen Sound spiele. Ich nehme an, es sollte eine Verzögerung geben. Gibt es etwas, das ich nicht verstehe?

Dougui
quelle

Antworten:

1

Ich denke, der Latenzversatz in Ihrem Screenshot ist nur Pulsaudio, der die Zeit berechnet, um Größen mit bestimmten Abtastfrequenzen zu puffern und diese Parameter mit ALSA anzuordnen. Wenn Sie den Latenzversatz dort ändern, ohne dass ein Effekt angezeigt wird, ist dies möglicherweise nur ein ALSA-Treiber, der keine große Vielfalt an Puffergrößen unterstützt.

Um einen zusätzlichen Puffer zu erhalten, können Sie eine Null-Senke hinzufügen, um Modul-Loobpacks latency_msec wie folgt zu verwenden :

pactl load-module module-null-sink sink_name=delayed
pactl load-module module-loopback latency_msec=2000 source=delayed.monitor sink=alsa_output.pci-0000_00_1b.0.analog-stereo

Dann müssen Sie die Nullsenke mit Ihrem Bluetooth-Audio kombinieren.

Ich hatte die erwartete große Verzögerung beim Testen dieses einfachen Setups ohne Modul-Mähdrescher-Senke wie folgt:

paplay someaudio.ext --device delayed
Thomas
quelle
Ich habe versucht, das zweite Gerät mit zu laden, pactl load-module module-loopback latency_msec=2000 source=delayed.monitor sink=bluez_sink.F8_DF_15_BB_6D_F5.a2dp_sinkdamit der paplayBefehl den Sound an beide Geräte sendet, aber ich habe immer noch das gleiche Problem. Ich habe es mit einem einzigen Gerät versucht, aber es ist immer sofort. Ich habe es mit anderen versucht, latency_msecaber es ändert nichts. Irgendeine Idee?
Dougui
endlich scheint es zu funktionieren. Ich weiß nicht, warum es nicht gestern ist. Ich hatte die richtige Genauigkeit mit Kommandozeile von doeing zu finden pactl load-moduleund pactl unload-modulejedes Mal. Haben Sie einen bequemeren Weg? Ein grafisches Werkzeug wäre schön.
Dougui
Entschuldigung, ich kenne kein grafisches Werkzeug dafür. Aber zum Laden und Entladen könnten Sie so etwas tunindex=$( pactl load-module ... ); sleep 5; pactl unload-module $index
Thomas
0

Sie benötigen die Latenz am Haut-parluer (Lautsprecher), nicht am Sortei ligne (Line Out oder Kopfhöreranschluss). Sie können auch die Latenz auf beide einstellen, solange Bluetooth kein Gerät ist, das an die Kopfhörerbuchse angeschlossen ist, da dies die Latenz weiter erhöhen würde.

  • Der Ton wäre sofort zu hören, da die Latenz für die internen Lautsprecher 0 beträgt. Die Buchsen des Kopfhörers betragen jedoch 2 Sekunden.
Michael Prokopec
quelle
Ich habe verschiedene Einstellungen ausprobiert und es dauert nie die Latenz. Der Ton ist immer sofort. Ich habe versucht, die Latenz wie gesagt einzustellen, aber es ändert nichts.
Dougui
Seltsam, ich wünschte, ich könnte hilfreicher sein.
Michael Prokopec