同时将两个音频 FIFO(其中一个可能没有数据但优先)传输到单个 FIFO 输出

同时将两个音频 FIFO(其中一个可能没有数据但优先)传输到单个 FIFO 输出

我有一个快照音频服务器,配置为具有三个音频流(fifo):音乐,播送, 和输出。我的扬声器播放来自输出流,我的音乐播放器将输入传输到音乐溪流。我可以成功地将音乐传输到输出中,以便我可以使用以下命令在扬声器上听到音乐:cat /tmp/music > /tmp/output

现在我想实现一个“覆盖”功能,其中来自播送流导致输出反而播放(警报)播送,暂时忽略来自的流音乐直到广播结束。然而,大多数时候/tmp/广播为空并且没有输入。即使是通过简单地尝试查看内容也会使dd bs=1 count=1 if=/tmp/broadcast终端挂起,直到广播中有可用数据为止。因此我尝试做类似的事情合并流不成功。

我调查过ffmpeg和pulseaudio,但无法弄清楚这种“选择性覆盖”是否可能。 FFmpeg 进一步似乎多 fifo 输入存在错误。理想的解决方案还应该“听起来不错”,即,当广播接管时,可能会在流之间进行 1/4 秒的淡入淡出。

编辑跑步Ubuntu Desktop 18.04。哎呀!

相关内容