同時將兩個音訊 FIFO(其中一個可能沒有資料但優先)傳輸到單一 FIFO 輸出

同時將兩個音訊 FIFO(其中一個可能沒有資料但優先)傳輸到單一 FIFO 輸出

我有一個快照音訊伺服器,配置為具有三個音訊串流(fifo):音樂,pod送, 和輸出。我的揚聲器播放來自輸出串流,我的音樂播放器將輸入傳輸到音樂溪流。我可以成功地將音樂傳輸到輸出中,以便我可以使用以下命令在揚聲器上聽到音樂:cat /tmp/music > /tmp/output

現在我想實現一個「覆蓋」功能,其中來自pod送流導致輸出反而播放(警報)pod送,暫時忽略來自的流音樂直到廣播結束。然而,大多數時候/tmp/廣播為空並且沒有輸入。即使是透過簡單地嘗試查看內容也會使dd bs=1 count=1 if=/tmp/broadcast終端掛起,直到廣播中有可用資料為止。因此我嘗試做類似的事情合併流不成功。

我已經調查過ffmpeg和pulseaudio,但無法弄清楚這種「選擇性覆蓋」是否可能。 FFmpeg 進一步似乎多 fifo 輸入存在錯誤。理想的解決方案還應該“聽起來不錯”,即,當廣播接管時,可能會在串流之間進行 1/4 秒的淡入淡出。

編輯跑步Ubuntu Desktop 18.04。哎呀!

相關內容