将多个现场音频pcm混合到fifo管道

时间:2019-08-08 05:04:02

标签: linux audio gstreamer alsa sox

我正在尝试混合来自2个来源的音频,实际上是将输出到他们自己的fifo管道的librespot和mpd定位到单个fifo管道以馈送快照。我希望音频能够通过,即使只有一个源在播放音频,并且如果两者都在播放,则音频也会叠加。它旨在在armbian orangePi上运行。

我在alsa上尝试了gstreamer,sox或dmix等其他工具。 alsa dmixer的问题在于,在声卡上输出会很好,但无法输出到fifo管道(dmixer直接在声卡的DMA中写在文档中的某个地方)。 我设法将pcm fifo和输出与gstreamer或sox混合到fifo,但是我的问题是只有在两个输入都在播放时,管道才能播放。如果我停止一个输入,则混合和整个管道都将停止。

gst-launch-1.0 \ liveadder name=mix ! audioconvert ! autoaudiosink \ filesrc location=/tmp/mpdfifo ! rawaudioparse use-sink-caps=false format=pcm pcm-format=s16le sample-rate=44100 num-channels=2 ! mix. \ filesrc location=/tmp/spotify ! rawaudioparse use-sink-caps=false format=pcm pcm-format=s16le sample-rate=44100 num-channels=2 ! mix.

在混合之前或之后,我无动于衷地尝试了liveadderaudiomixeradder和一些queue

0 个答案:

没有答案