Ich habe einSnapcastAudioserver, der so konfiguriert ist, dass er über drei Audio-Streams (FIFOs) verfügt:Musik,übertragen, UndAusgabe. Meine Lautsprecher geben den Ton vomAusgabeStream, und meine Musik-Player leiten den Input in denMusikstreamen. Ich kann die Musik erfolgreich in die Ausgabe umleiten, sodass ich die Musik über die Lautsprecher höre, und zwar mit dem folgenden Befehl:cat /tmp/music > /tmp/output
Jetzt möchte ich eine "Override"-Funktion implementieren, bei der die Eingaben aus demübertragenStrom bewirkt, dass dieAusgabeZustattdessenspielen Sie die (Warnung) von derübertragen, vorübergehendes Ignorieren des Streams vonMusikbis die Sendung endet. Meistens jedoch/tmp/Broadcastist leer und hat keinen Eingang. Sogar ein einfacher Versuch, den Inhalt über zu sehen, lässt dd bs=1 count=1 if=/tmp/broadcast
das Terminal hängen, bis Daten im Broadcast verfügbar sind. Daher meine Versuche, Dinge wieDatenströme zusammenführenist erfolglos.
Ich habe nachgesehenffmpegund pulseaudio, kann aber nicht herausfinden, ob eine solche „selektive Übersteuerung“ möglich ist. Ffmpeg scheint außerdemhaben Fehler mit Multi-FIFO-EingabeDie ideale Lösung würde auch „gut klingen“, d. h. vielleicht eine 1/4-Sekunden-Überblendung zwischen den Streams durchführen, wenn die Übertragung übernimmt.
bearbeitenLäuft Ubuntu Desktop 18.04
. Ups!