将一些OpenCV处理添加到gstreamer视频流

SMi*_*iLE 8 python opencv gstreamer

我正在尝试让OpenCV在一个gstreamer管道中间处理一个框架.

我有一个gstreamer管道生成流,将其发送到appsink以获取OpenCV代码:

v4l2src ! ffmpegcolorspace ! jpegenc ! appsink name=sink
Run Code Online (Sandbox Code Playgroud)

另一个管道从appsrc(OpenCV发送数据)获取它并在屏幕上输出:

appsrc name=src ! jpegdec ! xvimagesink
Run Code Online (Sandbox Code Playgroud)

我在接收器上打开每个帧的拉缓冲器请求并使用OpenCV处理它,然后在src上使用push-buffer.我正在用Python做所有这些.

出于某种原因,这似乎不起作用(分段错误).

但我并没有真正想要解决它; 无论如何,它的效率非常低.我只是想知道是否有更好的方法让OpenCV在到达输出接收器之前处理帧?

sin*_*law 3

您尝试过gst-opencv吗?它提供了几个 opencv 原语作为 gstreamer 插件。

编辑:似乎它已合并到gst-plugins-bad中,并且上面的链接已过时。