我想使用gstreamer为多个UDP RTP流创建网络接收器。基本设置(一个发件人,一个接收器)工作正常,看起来像这样:
# sender:
gst-launch-1.0 -vvtcm audiotestsrc ! rtpgstpay config-interval=1 ssrc=1 ! udpsink host=127.0.0.1 port=5000
# receiver:
gst-launch-1.0 -vvtcm udpsrc port=5000 caps="application/x-rtp,media=application,clock-rate=90000,encoding-name=X-GST" ! rtpssrcdemux ! rtpgstdepay ! autoaudiosink
但是,我希望有多个发件人可以动态启动和停止流式传输到同一个端口。 AFAICT RTP中的SSRC字段允许我这样做,但我无法弄清楚如何配置rtpssrcdemux
以便它将创建额外的接收器垫。
E.g。当我启动以下接收器管道时:
gst-launch-1.0 -vvtcm udpsrc port=5000 caps="application/x-rtp,media=application,clock-rate=90000,encoding-name=X-GST" ! rtpssrcdemux name=demux demux.src_0 ! rtpgstdepay ! autoaudiosink demux.src_1 ! rtpgstdepay ! autoaudiosink
它将等待第一个音频流,但当我使用不同的SSRC启动第二个发送者时,管道将以streaming task paused, reason not-linked (-1)
停止。
提示欢迎......?