VLC读取RTP组播流

VLC read RTP multicast stream

我正在尝试通过以下命令使用 UDP 多播地址发送 RTP 流:

gst-launch-1.0 /dev/video0 ! video/x-raw,format='NV16',width=1280,height=720,framerate=30/1 ! queue ! \
    omxh265enc control-rate=low-latency num-slices=8 gop-mode=low-delay-p periodicity-idr=30 cpb-size=350 initial-delay=250 target-bitrate=6000 ! queue ! \
    rtph265pay config-interval=1 mtu=1400 pt=96 ! \
    udpsink host=239.0.0.1 port=5000 auto-multicast=true multicast-iface=eth0 async=false max-lateness=-1 qos=true qos-dscp=60 max-bitrate=60000000 -v

我没有 rtsp 地址,但我使用的是用 VLC 打开的 sdp 文件:

v=0
m=video 5000/2 RTP/AVP 96
c=IN IP4 239.0.0.1
a=rtpmap:96 H265/90000

这不起作用(无图像)但是如果我使用比方说 192.168.0.1 作为 IP 地址那么一切正常。用 wireshark 监视以太网接口,我可以看到 RTP 数据包被传送到客户端,VLC 控制台说它成功打开了 sdp 文件。

虽然没有直接回答问题,但我使用 gstreamer 将多播转换为单播作为解决方法:

gst-launch-1.0 udpsrc address=239.0.0.1 port=5000 auto-multicast=true multicast-iface=eth1 ! \
               queue ! \
               udpsink host=127.0.0.1 port=50000 async=false max-lateness=-1 qos=true qos-dscp=60 max-bitrate=60000000