【问题标题】:Setting GStreamer Element property with pythoin使用 python 设置 GStreamer Element 属性
【发布时间】:2019-04-19 14:06:29
【问题描述】:

这个简单的 Gstreamer 应用使用 python API 失败

import pgi
pgi.require_version('Gst', '1.0')
from pgi.repository import Gst, GLib
import traceback

Gst.init([])

pipeline = Gst.Pipeline()
src = Gst.ElementFactory.make('videotestsrc', 'src')
sink = Gst.ElementFactory.make('autovideosink', 'sink')
pipeline.add(src)
pipeline.add(sink)
src.link(sink)
src.set_property("pattern", 0)

pipeline.set_state(Gst.State.PLAYING)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~/Documents/mythic-projects/OKR_2019Q2/gstreamer_pipeline.py in <module>
     12 pipeline.add(sink)
     13 src.link(sink)
---> 14 src.set_property("pattern", 0)
     15
     16 pipeline.set_state(Gst.State.PLAYING)

~/Documents/mythic-projects/OKR_2019Q2/venv/lib/python3.6/site-packages/pgi/obj.py in set_property(self, name, value)
     73
     74         if not hasattr(self.props, name):
---> 75             raise TypeError("Unknown property: %r" % name)
     76         setattr(self.props, name, value)
     77

TypeError: Unknown property: 'pattern'

我可以确认命令行操作正常:

gst-launch-1.0 videotestsrc pattern=snow ! autovideosink

但 API 似乎与文档和教程不同。对于任何.set_property() 操作都是如此。

例如http://lifestyletransfer.com/how-to-launch-gstreamer-pipeline-in-python/

我在 Mac OSX、python3.6 上运行,并安装了 gstreamer,如下所述:Installing Gstreamer-1.0 on Mac OS X Mavericks(我也尝试从 .dmg 安装,但结果相同)

【问题讨论】:

    标签: python macos gstreamer


    【解决方案1】:

    本教程使用import gi 而不是import pgi。这可能会有所作为。

    PGI 页面https://github.com/pygobject/pgi 说它没有维护,也应该使用 PyGObject。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    相关资源
    最近更新 更多