如何在Python中输出opencv到gstreamer?

我想在opencv中处理相机流(工作正常),但是通过网络输出结果处理后的帧,这样我就可以看到它们,因为它是一个没有监视器的嵌入式系统。 我花了几天的时间寻找,但无法解决如何在python中将帧推送到gstreamer。 看起来我应该在gstreamer中创建一个appsrc-> udp管道(这没有问题),但是我找不到任何地方如何使用python在opencv中将框架推送到appsrc。 我在C ++中看到过一些例子,但我不知道如何将它们翻译成python。 似乎可以像这样复制缓冲区:将图像压入Gstreamer管道或者这意味着通过直接在opencv videowriter中打开appsrc可以更简单的方法:如何将opencv mat写入gstreamer管道?

有没有人有一个非常简单的例子,如何在Python中输出opencv到gstreamer?


我不是Python专家..但是这个怎么样..

假设你有这个代码来连接appsrc需要的数据信号(就像这里):

source = gst.element_factory_make("appsrc", "source")
.. you need to set caps, then connect:
source.connect('need-data', self.needdata)

然后在needdata函数中,您需要获取opencv框架的数据指针并从中创建GstBuffer并发出它。

假设你有两个变量self.data是实际的opencv数据,self.size是数据的大小:

def needdata(self, src, length):
    buf = Gst.Buffer.new_allocate(self.size) 
    buf.fill(0, self.data)
    src.emit('push-buffer', buf)

嗯,不知道在那个长度变量..什么在gstreamer 1.0 pygst似乎是相当无证..或我找不到文档..

链接地址: http://www.djcxy.com/p/25429.html

上一篇: How to output opencv to gstreamer in python?

下一篇: How to write opencv mat to gstreamer pipeline?