我正在尝试让OpenCV在gstreamer管道的中间处理一帧。
我有一个gstreamer管道生成流,将其发送到appsink以供OpenCV代码接收:
v4l2src ! ffmpegcolorspace ! jpegenc ! appsink name=sink
另一个管道从appsrc获取数据(由OpenCV发送数据),并将其输出到屏幕上:
appsrc name=src ! jpegdec ! xvimagesink
我在Python中使用OpenCV,通过对接收器发出拉取缓冲区请求并处理它,然后在来源处使用推送缓冲区。但由于某种原因,这似乎不起作用(分段错误)。
但我并不真的想修复它;它非常低效。我只是想知道有没有更好的方法让OpenCV在帧到达输出接收器之前处理它?