端口管道到 gst-rtsp-server

Port pipeline to gst-rtsp-server

我正在尝试将这个有效的发件人端管道包装在 gst-rtsp-serve 中

gst-launch-1.0 --gst-plugin-path=/usr/lib/x86_64-linux-gnu/gstreamer-1.0/    filesrc location=sample.mp4    ! decodebin  name=mux mux.    ! queue    !  videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000  mux. ! queue ! audioconvert ! audioresample ! alawenc ! rtppcmapay ! udpsink host=127.0.0.1 port=5001

在接收方使用互补管道,所有的东西都可以工作,我能够发送 opencv 处理的流,在客户端获取它。 当我尝试在与 gst-rtsp-server 一起提供的工作示例中包装此管道的一部分时,出了点问题。 事实上,编辑 test-mp4.c 并更改 filesrc 输入 pipelin

"filesrc location=%s ! qtdemux name=d "
  "d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 "
  "d. ! queue ! rtpmp4apay pt=97 name=pay1 " ")"

发件人不再工作了。在接收方,我收到 503 错误,因为接收方无法获取 sdp。 这可能是与缺少错误插件目录有关的问题吗? 我在主 Makefile 中设置了它,但问题仍然存在。 我想如果我不编辑该行并且我的管道也能正常工作,那么 rtsp-server 就可以完美地工作。

谢谢,

弗朗切斯科

您创建的管道似乎有问题。尝试 运行 您的管道与命令行上的完全一样,但在末尾添加 fakesink 元素以查看是否可行:

gst-launch-1.0 filesrc location=%s ! qtdemux name=d d. ! queue ! videoconvert ! edgedetect ! videoconvert ! x264enc ! rtph264pay pt=96 name=pay0 ! fakesink d. ! queue ! rtpmp4apay pt=97 name=pay1 ! fakesink

乍一看,您似乎正在对媒体进行多路分解,但并未将视频解码为 edgedetect 元素的原始格式。