Gstreamer管道盖

时间:2016-05-08 01:06:29

标签: opencv gstreamer pipeline raspberry-pi3

我可以帮助构建Gstreamer管道。 目的是从RaspiCam捕获视频,然后将视频流传输到另一个RPi,在其间的发送RPi上使用OpenCV进行图像处理(对象跟踪)。 但我在编码方面遇到了麻烦,而且我不太了解我应该使用的巫婆。

我查看了这个Adding opencv processing to gstreamer application,并试图让gst-rpicamsrc捕获凸轮以便在管道中使用。但我似乎无法弄清楚如何解码(?)视频,以便我可以在OpenCV中使用它。 它与videotestsrc很好,但rpicamsrc显然有其他属性。

"rpicamsrc ! " "h264parse ! " "tee name=cam ! " "video/x-h264, width=640, height=480, format=RGB ! " "omxh264dec ! " "videoconvert ! " "appsink name=sink sync=true ! " ".cam rtph264pay ! " "rtprtxqueue ! " "udpsink host=127.0.0.1 sync=false port=5000"

我还尝试过更短的管道,但只能使用videotestsrc。

我担心队列会给图像处理添加一个令人讨厌的延迟,因为我想跟踪对象可能不够好。

我还尝试使用VideoCapture上限(" rpicamsrc!appsink")和上限(" v4l2src!videodecode!video / x-raw!appsink)等等。 我已经尽力将接收方与解码器相反,但我的知识太有限了。

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

根据VideoCapture的文档:

  • '文件名'参数不限于文件系统路径,可以是以下之一: *
      • 正常的文件系统路径:
    • e.g。 video.avi或/path/to/video.avi或C:\ video.avi
      • 一个uri:
    • e.g。 file:///path/to/video.avi或rtsp:///path/to/stream.asf
      • gstreamer管道描述:
    • e.g。 videotestsrc!视频转换! appsink
    • 应用程序名称应该是' appsink0' (默认)或' opencvsink'

请注意,appsink的名称必须是一个或者appsink0或opencvsink,而你称之为简单地沉没。