端口管道到gst-rtsp-server

时间:2016-02-08 16:33:41

标签: opencv gstreamer rtsp

我正在尝试将此工作发送方管道包装在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工作得很好。

谢谢,

弗朗西斯

1 个答案:

答案 0 :(得分:0)

这看起来是您创建的管道的问题。尝试在命令行上运行管道的确切方式,但在末尾添加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元素的原始格式。