Como dois aplicativos podem ler a mesma entrada de som (digital) no Linux/ALSA?

Como dois aplicativos podem ler a mesma entrada de som (digital) no Linux/ALSA?

Tenho uma placa de som com porta de entrada AES/EBU que desejo acessar com dois aplicativos simultaneamente. Quero gravar a entrada em um arquivo WAV linear em tempo real e, ao mesmo tempo, transmiti-la através do IceCast. Se eu ingenuamente tentar acessar o mesmo dispositivo de entrada com ambos os aplicativos, alguém me dirá que não é possível acessar o dispositivo. Como posso configurar o ALSA para conseguir isso? Ou terei que transmiti-lo através de algum programa externo, introduzindo atrasos?

Responder1

Você pode usar o dsnoopplug-in para copiar os dados de amostra para vários dispositivos de captura virtual.

Coloque algo assim em seu ~/.asoundrcou /etc/asound.confe use snooped_digitalcomo nome de dispositivo em ambos os aplicativos:

pcm.snooped_digital {
    type dsnoop
    slave {
        pcm "hw:2,1"   # the actual device
        channels 2
        rate 48000
    }
}

informação relacionada