Linux의 PulseAudio에서는 지연이 작동하지 않습니다.

Linux의 PulseAudio에서는 지연이 작동하지 않습니다.

스피커가 두 개 있어요. 첫 번째는 PCI 카드에 연결되고 두 번째는 Bluetooth를 통해 연결됩니다. PCI 카드에서는 사운드가 조금 더 일찍 재생되므로 약간의 지연을 추가하고 싶었습니다. Pulse Audio GUI를 다운로드했는데 다음과 같은 내용이 있습니다.

여기에 이미지 설명을 입력하세요.

보시다시피 "오디오 인터넷"(PCI 카드)에 2초의 오프셋을 추가했습니다.

명령을 확인했는데 pactl list cards내부 카드에 대해 다음이 있습니다.

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

나는 이것을 하려고 노력한다 pactl play-sample bell.ogg alsa_output.pci-0000_00_1b.0.analog-stereo. 항상 순간적인 것 같습니다. 내가 설정한 지연은 음악을 재생하는 동안에도 아무 것도 바뀌지 않는 것 같습니다.

어떡해?

편집하다

에 의해 pactl list sinks나는 이것을 보았습니다:

Latency: 2039815 usec, configured 40000 usec 

그래서 딜레이가 제대로 설정되어 있는 것 같은데 소리를 틀어보니 순간적으로 나오는 것 같습니다. 나는 지연이 있어야한다고 생각합니다. 제가 이해하지 못하는 것이 있나요?

답변1

스크린샷의 지연 시간 오프셋은 Pulsaudio가 주어진 샘플링 주파수에 대한 버퍼 크기를 계산하고 ALSA를 사용하여 이 매개변수를 예약하는 데 걸리는 시간일 뿐이라고 추측합니다. 지연 오프셋을 변경해도 뚜렷한 효과가 없습니다. 이는 ALSA 드라이버가 여러 버퍼 크기를 지원하지 않기 때문일 수 있습니다.

추가 버퍼를 얻으려면 사용할 빈 수신기를 추가할 수 있습니다.모듈 사이클 패키지 latency_msec이와 같이:

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

그런 다음 Zero 수신기를 Bluetooth 오디오와 결합해야 합니다.

이 간단한 설정을 테스트하는 동안 예상했던 엄청난 지연이 발생했습니다.모듈 조합 수신기이와 같이:

paplay someaudio.ext --device delayed

답변2

Sortei ligne(라인 출력 또는 헤드폰 잭)이 아닌 Haut-parluer(스피커)의 딜레이를 원합니다. 또는 Bluetooth가 헤드폰 잭에 연결된 장치가 아닌 한 둘 다에 지연을 설정할 수 있습니다. 이렇게 하면 지연이 더 늘어납니다.

  • 내장 스피커의 대기 시간이 0이기 때문에 소리가 즉각적으로 발생합니다. 헤드폰 잭의 지연 시간은 2초입니다.

답변3

다음은 더 간단한 한 줄 형식입니다.솔루션module-loopback추가 모듈이나 수신기가 사용되지 않습니다.

pactl load-module module-loopback latency_msec=2000 source=bluez_sink.F8_DF_15_BB_6D_F5.a2dp_sink.monitor sink=alsa_output.pci-0000_00_1b.0.analog-stereo

소스는 Bluetooth 장치여야 하며 싱크는 지연하려는 장치여야 합니다. 그런 다음 시스템 트레이나 케이스에서 Bluetooth 장치를 선택하면 됩니다 pactl play-sample bell.ogg bluez_sink.F8_DF_15_BB_6D_F5.a2dp_sink.monitor. 유일한 단점은 볼륨 버튼이 Bluetooth 장치만 제어하고 GUI는 더 이상 그룹화되지 않은 Bluetooth 장치만 선택할 수 없다는 것입니다. 모든 작업은 한 단계로 완료되며 module-loopback, 추가 작업 module-combine-sink이나 필수 작업은 없습니다 module-null-sink.

관련 정보