我正在尝试混合来自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.
在混合之前或之后,我无动于衷地尝试了liveadder
,audiomixer
,adder
和一些queue
。