Установка свойства GStreamer Element с помощью pythoin - PullRequest
0 голосов
/ 19 апреля 2019

Это простое приложение 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, как показано здесь: Установка Gstreamer-1.0 в Mac OS X Mavericks (я также пытался установить из .dmg, но результаты те же)

1 Ответ

0 голосов
/ 19 апреля 2019

В учебнике используются import gi, а не import pgi. Это может иметь значение.

Страница PGI https://github.com/pygobject/pgi говорит, что она не поддерживается, и вместо нее следует использовать PyGObject.

...