我如何需要在 python 代码中链接这个 gstreamer 管道?(不使用 gst.launch()!)
filesrc ! h264parse ! avimux ! filesink
当我尝试创建垫对象时-
h264parse.get_pad('src0')
它返回无类型。我还将缓冲探针连接到这个垫子上。
我如何需要在 python 代码中链接这个 gstreamer 管道?(不使用 gst.launch()!)
filesrc ! h264parse ! avimux ! filesink
当我尝试创建垫对象时-
h264parse.get_pad('src0')
它返回无类型。我还将缓冲探针连接到这个垫子上。
这很简单,但与其给你代码,我建议你去阅读一下这个主题,试试这个:http ://www.jonobacon.org/2006/08/28/getting-started-与-gstreamer-与-python/
h264parse 的 srcpadname 是“src”,而不是“src0”,这就是它返回 NoneType 的原因。'src0' 通常只在你有一个带有请求垫的元素(如 Tee)时使用,但 h264parse 不是这种情况。
如果您仍然无法使其工作,请随时发布更完整的代码尝试。
A small snippet of code which works with 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()