我想使用Gstreamer
从同一端口上的多个点接收音频流。
实际上,我想将来自网络上不同节点的音频流式传输到一个监听传入音频流的设备,并且它应该在播放前混合多个音频。
我知道我应该使用audiomixer
或liveadder
来完成这项任务。
但是我不能这样做,并且调音台没有正常工作,当两个音频流来时,输出声音会如此嘈杂和损坏。
我使用了以下命令:
gst-launch-1.0.exe -v udpsrc port = 5001 caps =“application / x-rtp”! 排队! rtppcmudepay! mulawdec! audiomixer name = mix mix。 ! audioconvert!听觉样本! autoaudiosink
但它不起作用。
答案 0 :(得分:1)
然后,关于你的混音问题,你提到输出声音是'#34;嘈杂和损坏",这让我想到了音频电平的问题。
我和Gstreamer Audiomixer有同样的问题,但它与音频水平无关。两个音频电平都很正常,不那么响亮。 请共享一个示例管道以在同一端口上接收多个音频流,例如:5001,然后将它们混合播放。
答案 1 :(得分:1)
同一端口上的数据包与您在命令中写入的正常方式相互之间不能demux
,要从同一端口接收多个音频流,您应该使用SSRC
和rtpssrcdemux
解复用。
但是,要在多个端口上接收多个音频流并将它们混合,您可以使用liveadder
元素。从两个端口接收两个音频流并将它们混合的示例如下:
gst-launch-1.0 -v udpsrc name = src5001 caps =“application / x-rtp” port = 5001! rtppcmudepay! mulawdec!听觉样本! liveadder name = m_adder! alsasink device = hw:0,0 udpsrc name = src5002 caps =“application / x-rtp”port = 5002! rtppcmudepay! mulawdec! 听觉样本! m_adder。
答案 2 :(得分:0)