默认情况下,如果主接收器没有反馈,则无法创建具有脉冲音频的新虚拟接收器,而只能使用它的选定接收器

默认情况下,如果主接收器没有反馈,则无法创建具有脉冲音频的新虚拟接收器,而只能使用它的选定接收器

我正在使用 Linux、Ubuntu,并且pulse audio想要将音频效果应用到音频源(例如麦克风)并将其通过管道传输到新的接收器,该接收器可以由 arecord 或其他应用程序使用并通常使用,但我得到了有关主要内容的反馈水槽(非隔离)。

VirtualSink我创建了一个名为使用模块的虚拟接收器,模块空接收器通过:

pactl load-module module-null-sink sink_name=VirtualSink sink_properties=device.description=Virtual_Sink

我获取所有源的列表,其中包括我的麦克风源pactl list sources short,然后运行 ​​ffmpeg 以使用麦克风源应用回声并将其通过以下方式传递到 VirtualSink 的监视器:

ffmpeg -f pulse -i <mic-source> -af "aecho=0.8:0.9:1000:0.3" -f pulse "VirtualSink.monitor"

虚拟接收器确实创建了,可以被arecord/Skype等应用程序看到,流通过,但存在问题:

  • 可以通过扬声器/耳机听到来自麦克风的音频(定向到应用程序和默认接收器输出)
  • 延迟几秒后,扬声器/耳机会听到声音(某种反馈)

我查看pavucontrol并尝试了静音和改变控制,但没有什么区别。它只是有时使流静音,而没有解决这两个问题中的任何一个。问题可能是 ffmpeg 自动流式传输到默认接收器,还是操作系统也将任何新接收器定向到通用总体接收器?是否有缺少的配置?

如何创建接收器,将音频从源流式传输到接收器而不获得反馈?

相关内容