首页 文章

如何在python中输出opencv到gstreamer?

提问于
浏览
0

我想在opencv中处理相机流(工作正常),但是然后通过网络输出生成的处理帧,这样我就可以看到它们只需要几天看,但是无法解决如何将帧推送到python中的gstreamer . 看起来我应该在gstreamer中创建一个appsrc-> udp管道(_1685639已经看到了C中的一些例子,但我不知道如何将它们翻译成python . 似乎可以像这样复制缓冲区:Push images into Gstreamer pipeline或者这意味着通过在opencv videowriter中直接打开appsrc更简单的方法:How to write opencv mat to gstreamer pipeline?

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

1 回答

  • 0

    我不是python专家..但是this怎么样..

    假设你有这个代码来连接appsrc需要数据信号(如here):

    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似乎完全没有文档...或者我找不到文档..

相关问题