繁体   English   中英

使用 gstreamer 混合多个 rtp 音频流

[英]mixing multiple rtp audio streams with gstreamer

我试图在其他一些计算机上混合使用以下命令创建的多个音频 udp rtp 数据包,但经过大量搜索后,我找不到一些正确的命令来混合接收到的音频。

我使用此命令将其他计算机上的音频流式传输到我的计算机:

gst-launch-1.0 autoaudiosrc ! audioconvert ! rtpL24pay ! udpsink host=<MY_COMPUTER_IP> port=<some_port_number>

我可以使用以下命令在我的计算机上接收流:

gst-launch-1.0 -v udpsrc port=<port_number> caps="application/x-rtp,channels=(int)2,format=(string)S16LE,media=(string)audio,payload=(int)96,clock-rate=(int)44100,encoding-name=(string)L24" ! rtpL24depay ! audioconvert ! autoaudiosink sync=false

但我想将接收到的流混合在一起,并将它们作为一个音频在一个管道中播放,我该怎么做?

要混合两个音频流,您可以使用 GStreamer 的audiomixer插件。 非常基本的例子是:

2 个并行 RTP(通过 UDP)流的生成器,具有不同频率的测试音频

gst-launch-1.0 audiotestsrc freq=523 ! audioconvert ! rtpL24pay ! udpsink host=127.0.0.1 port=5000 \
audiotestsrc freq=659 ! audioconvert ! rtpL24pay ! udpsink host=127.0.0.1 port=5001

2 个不同的 RTP(通过 UDP)流的接收器,它混合了流携带的 2 个音频

gst-launch-1.0 -v udpsrc port=5000 caps="application/x-rtp,channels=(int)2,format=(string)S16LE,media=(string)audio,payload=(int)96,clock-rate=(int)44100,encoding-name=(string)L24" \
! queue ! rtpL24depay ! audioconvert ! audiomixer name=mixer ! autoaudiosink \
udpsrc port=5001 caps="application/x-rtp,channels=(int)2,format=(string)S16LE,media=(string)audio,payload=(int)96,clock-rate=(int)44100,encoding-name=(string)L24" \
! queue ! rtpL24depay ! audioconvert ! mixer.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM