2016-02-08 57 views
0

我试图总结在此工作的发送方管道GST-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 ! 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一起提供的工作示例中包装此管道的一部分时,有些错误。 逸岸,编辑测试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中,但问题仍然存在。 我想这样sinche rtsp服务器工程完美,如果我不编辑该行,我的管道工程很好。

感谢,

弗朗西斯

回答

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元素的原始格式。

+0

你说得对。解压后,我需要解码视频流! 因此,我用decodebin元素替换了qtdemux,并在音频管道部分添加了audioconvert!它的工作。 现在我试图缓解在客户端的AV同步延迟:) 非常感谢:) – FrankBr