
Ich führe eine Reihe von Programmen aus, bei denen ich das Audiosignal kettenweise weiterleiten muss.
Programm 1 generiert Audio, das stillschweigend an Programm 2 weitergeleitet werden muss, und dann erstellt Programm 2 eine neue Audioquelle, die stillschweigend an Programm 3 weitergeleitet werden muss. Schließlich erstellt Programm 3 Audio, das an die Lautsprecher gehen soll.
Kann mir jemand helfen, herauszufinden, wie ich das am besten erreichen kann? Ich habe es geschafft, Audio ohne Meldung von Programm 1 in Programm 2 zu leiten, indem ich „sudo modprobe snd-aloop“ verwendet habe, wodurch ich ein Loopback-Gerät erhalte.
Aber jetzt weiß ich nicht, wie ich den Ton stillschweigend in Programm 3 weiterleiten soll. Und das geht nicht mit Pipes.
Antwort1
Pulseaudio oder reines ALSA? Pulseaudio ist am einfachsten: Erstellen Sie einen Dummy-Sink
pacmd load-module module-null-sink sink_name=tmpsink
und lassen Sie Programm 1 die Ausgabe dorthin senden. Programm 2 liest aus der tmpsink.monitor
Quelle. Und so weiter. All dies kann per Skript gesteuert werden. pacmd help
zeigt weitere Befehle, die nützlich sein können, z. B. list-sink-inputs
, list-source-outputs
, oder move-sink-input
und move-sink-output
wenn Sie in der Befehlszeile keine Quellen und Senken für die Programme angeben können.
Das in ALSA zu machen, macht wahrscheinlich ... Spaß. Bevor ich das in ALSA versuchen würde, würde ich es mit Jack versuchen.