使用Gstreamer将多个音频流混合成一个播放声音
我想使用Gstreamer
来接收来自同一端口上多个点的音频流。 事实上,我想要将来自网络上不同节点的音频流式传输到一台监听传入音频流的设备,并且它应该在播放前混合使用多个音频设备。 我知道我应该使用audiomixer
或liveadder
来完成这样的任务。 但是我不能这样做,调音台不能正常工作,当两个音频流出现时,输出的声音会非常嘈杂和损坏。使用Gstreamer将多个音频流混合成一个播放声音
我用下面的命令:
GST-发射-1.0.exe -v udpsrc端口= 5001个帽= “应用程序/ x-RTP”! 排队! rtppcmudepay! mulawdec! audiomixer名称=混音。 ! audioconvert! audioconvert! audioresample! autoaudiosink
但它不起作用。
作为您在命令中编写的常规方式,在同一端口上的数据包不能互相对应demux
,要从同一端口接收多个音频流,应使用SSRC
和rtpssrcdemux
demux。 但是,要在多个端口上接收多个音频流并混合它们,您可以使用liveadder
元素。一个例子来从两个端口接收两个音频流和混合它们如下:
GST-发射-1.0 -v udpsrc名称= src5001帽= “应用程序/ x-RTP” 端口= 5001! rtppcmudepay! mulawdec! audioresample! liveadder name = m_adder! alsasink device = hw:0,0 udpsrc name = src5002 caps =“application/x-rtp”port = 5002! rtppcmudepay! mulawdec! audioresample! m_adder。
然后,关于你的混音问题,你提到输出的声音是“噪声和损坏”,这让我想到音频电平的问题。
我与Gstreamer Audiomixer有同样的问题,但它与音频电平无关。两个音频电平都是正常的,没有那么大声。 请共享一个采样管道,以便在同一端口上接收多个音频流,例如:5001,然后将它们混合播放。