首页 > 解决方案 > gst-rtsp-server 使用多播 udp 源问题

问题描述

我在 238.0.0.1:1235 有一个 udp 多播源。它可以很好地使用这个命令。

gst-launch-1.0 -m udpsrc  address="238.0.0.1" port=1235 !tsdemux !h264parse !queue !avdec_h264 !queue !d3dvideosink sync=false

但是当我使用 gst-rtsp-server 创建这样的工厂时:

gst_rtsp_media_factory_set_launch(factory,
                                      "( udpsrc address=238.0.0.1 port=1235 !tsdemux !queue ! h264parse !queue ! rtph264pay name=pay0 pt=96 )");

并使用此命令在客户端播放,没有视频显示并给我一个错误“无法从资源中读取”

gst-launch-1.0 -m rtspsrc location=rtsp://127.0.0.1:8554/test !rtph264depay !queue  !decodebin !queue !d3dvideosink sync=false

为了让它像我期望的那样工作,我必须这样做:首先,重新传输 udpsrc

gst-launch-1.0 udpsrc address=238.0.0.1 port=1235 !queue  !udpsink host=127.0.0.1 port=5000

然后,在 rtsp 服务器端:

gst_rtsp_media_factory_set_launch(factory,
                                      "( udpsrc address=127.0.0.1 port=5000 !tsdemux !queue ! h264parse !queue ! rtph264pay name=pay0 pt=96 )");

服务器计算机可以接收到 udp 组播数据,用 updtest 工具确认。为什么我不能使用多播源在 rtsp-server 中创建工厂?这是禁止的行为还是我误解了什么?

标签: gstreamerrtsp

解决方案


推荐阅读