![Wie können zwei Anwendungen in Linux/ALSA denselben (digitalen) Toneingang lesen?](https://rvso.com/image/1447619/Wie%20k%C3%B6nnen%20zwei%20Anwendungen%20in%20Linux%2FALSA%20denselben%20(digitalen)%20Toneingang%20lesen%3F.png)
Ich habe eine Soundkarte mit einem AES/EBU-Eingangsport, auf den ich mit zwei Anwendungen gleichzeitig zugreifen möchte. Ich möchte den Eingang in Echtzeit in eine lineare WAV-Datei aufzeichnen und ihn gleichzeitig über IceCast streamen. Wenn ich naiv versuche, mit beiden Anwendungen auf dasselbe Eingabegerät zuzugreifen, wird mir von einer mitgeteilt, dass sie nicht auf das Gerät zugreifen kann. Wie kann ich ALSA einrichten, um dies zu erreichen? Oder muss ich es über ein externes Programm weiterleiten, was zu Verzögerungen führt?
Antwort1
Mit dem Plugin können Sie dsnoop
die Beispieldaten auf mehrere virtuelle Aufnahmegeräte kopieren.
Geben Sie etwa Folgendes in Ihr ~/.asoundrc
oder ein /etc/asound.conf
und verwenden Sie es snooped_digital
als Gerätenamen in beiden Anwendungen:
pcm.snooped_digital {
type dsnoop
slave {
pcm "hw:2,1" # the actual device
channels 2
rate 48000
}
}