【发布时间】:2017-12-28 08:25:31
【问题描述】:
我一直致力于通过网络进行实时图像采集(用于我的自主无人机项目)。到目前为止,我一直在使用 Gstreamer 管道(udp 协议)在发送方(远程)和接收方(主机)端流式传输视频,它的工作原理就像一个魅力(几乎是实时的)。
命令如下:
(来源):http://www.z25.org/static/rd/videostreaming_intro_plab/
发件人:
gst-launch-1.0 v4l2src ! video/x-raw,width=640,height=480 ! timeoverlay ! tee name="local" ! queue ! autovideosink local. ! queue ! jpegenc ! rtpjpegpay ! udpsink host=127.0.0.1 port= 5000
接收者:
gst-launch-1.0 udpsrc port=5000 ! application/x-rtp, encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink
现在,在 Receiver 端,我编写了一个 openCV videoCapture 脚本。目标是访问opencv(在主机上)中的视频流。
为了确认 gstreamer 是否集成在 opencv3.2.0 中,以下代码行用于使用 gstreamer 管道捕获网络摄像头流(连接到主机本身)并且它有效:
cv::VideoCapture camera0("v4l2src ! videoconvert ! appsink");
问题是,在 gstreamer 管道中使用 UDP 协议来访问 openCV(host) 中的流(从远程)不起作用。并且在线资源建议在 gstreamer 管道中使用 'rtsp'。
所以,如果有人可以在发送方和接收方(用于 openCV)端使用用于“rtsp”的 gstreamer 管道命令帮助我,那将是非常有帮助的。
PS:我的想法是只有 Gstreamer 可以是实时的。任何形式的帮助都将不胜感激,因为我仍然是整个 gstreamer 事情的菜鸟。谢谢。 :)
【问题讨论】:
标签: linux opencv video-streaming gstreamer rtsp