链接此gstreamer管道的正确方法是什么?

时间:2013-09-02 20:59:30

标签: python gstreamer pipeline python-gstreamer

如何在python代码中链接这个gstreamer管道? (不是使用gst.launch()!)

filesrc ! h264parse ! avimux ! filesink

当我尝试创建pad对象时 -

h264parse.get_pad('src0') 

它返回NoneType。 我也将bufferprobe附加到这个pad。

2 个答案:

答案 0 :(得分:1)

这是非常直接的,但我建议你去看一下这个主题,试试这个,而不是给你代码,http://www.jonobacon.org/2006/08/28/getting-started-with-gstreamer-with-python/

h264parse的srcpadname是'src',而不是'src0',这就是它返回NoneType的原因。 'src0'通常只在你有一个带有请求垫的元素(如Tee)时使用,但对于h264parse则不是这样。

如果仍无法使用,请随意发布更完整的代码尝试。

答案 1 :(得分:0)

与Gstreamer 1.0,python 2.7:

一起使用的一小段代码
import sys, os
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk
GObject.threads_init()
Gst.init(None)
pipeline = Gst.Pipeline()
src = Gst.ElementFactory.make("filesrc", "src")
parse = Gst.ElementFactory.make("h264parse", "parse")
mux = Gst.ElementFactory.make("avimux", "mux")
sink = Gst.ElementFactory.make("fakesink","sink")

pipeline.add(src)
pipeline.add(parse)
pipeline.add(mux)
pipeline.add(sink)

pipeline.set_state(Gst.State.PLAYING)
Gtk.main()