我可以帮助构建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)等等。 我已经尽力将接收方与解码器相反,但我的知识太有限了。
任何建议都将不胜感激!
答案 0 :(得分:0)
根据VideoCapture的文档:
请注意,appsink的名称必须是一个或者appsink0或opencvsink,而你称之为简单地沉没。