我可以在构建 Gstreamer 管道时使用一些帮助。目的是从 RaspiCam 捕获视频,然后将视频流式传输到另一个 RPi,在其间的传输 RPi 上使用 OpenCV 进行图像处理(对象跟踪)。但是我在编码方面遇到了麻烦,而且我对我应该使用的女巫知之甚少。
我已经查看了这个将 opencv 处理添加到 gstreamer 应用程序 ,并试图让gst-rpicamsrc捕获 cam 以在管道中使用。但我似乎无法弄清楚如何解码(?)视频,以便我可以在 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 cap("rpicamsrc !appsink") 和 cap("v4l2src !videodecode !video/x-raw !appsink) 等等。我已经尽我所能将接收端与解码器相匹配相反的方向,但我的知识太有限了..
任何建议将不胜感激!