Opencv 到gst rtsp服务器的端口管道

Opencv 到gst rtsp服务器的端口管道,opencv,gstreamer,rtsp,Opencv,Gstreamer,Rtsp,我正在尝试将此工作的发送方端管道包装到gst rtsp服务中 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 ! u

我正在尝试将此工作的发送方端管道包装到gst rtsp服务中

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服务器提供的工作示例中包装此管道的一部分时,出现了一些问题。 实际上,编辑test-mp4.c并更改filesrc输入管道

"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服务器就可以完美地工作

谢谢


Francesco

这似乎是您创建的管道的问题。尝试按照命令行上的方式运行管道,但在末尾添加fakesink元素以查看是否有效:

gst-launch-1.0文件rc位置=%s!qtdemux name=d!队列视频转换!edgedetect!视频转换!x264enc!rtph264pay pt=96 name=pay0!假货!队列rtpmp4apay pt=97 name=pay1!fakesink


乍一看,您似乎正在对媒体进行解组,但没有将视频解码为
edgedetect
元素的原始格式。

您说得对。我需要解码后的视频流解组它!所以我用decodebin元素替换了qtdemux,并在音频管道部分添加了audioconvert!它成功了。现在,我正在尝试减轻客户端的av同步延迟:)非常感谢:)