两个应用程序如何从 Linux/ALSA 中的相同(数字)声音输入中读取?

har*_*oba 4 audio linux alsa

我有一个带有 AES/EBU 输入端口的声卡,我想同时使用两个应用程序访问它。我想将输入实时记录到线性 WAV 文件中,同时还通过 IceCast 进行流式传输。如果我天真地尝试使用两个应用程序访问同一个输入设备,则有人告诉我它无法访问该设备。我如何设置 ALSA 以实现此目的?或者我是否必须通过一些外部程序来传递它,从而引入延迟?

CL.*_*CL. 5

您可以使用该dsnoop插件将示例数据复制到多个虚拟捕获设备。

将这样的内容放入您的~/.asoundrcor 中/etc/asound.conf,并snooped_digital在两个应用程序中用作设备名称:

pcm.snooped_digital {
    type dsnoop
    slave {
        pcm "hw:2,1"   # the actual device
        channels 2
        rate 48000
    }
}
Run Code Online (Sandbox Code Playgroud)