привязки для GStreamer на Python для Windows
Я рассматриваю gstreamer как средство выбора видеоустройства из списка, чтобы передать его скрипту opencv.
Я абсолютно не понимаю, как использовать gstreamer с python в windows. Я установил Windows GStreamer 1.07 двоичные файлы С официальный сайт gstreamer. Однако, я не мог импортировать pygst
и gst
модули в python.
>>> import pygst
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import pygst
ImportError: No module named pygst
>>>
Я проверил установку gstreamer и там, кажется, нет pygst.py
при условии. однако есть файл с именем gst-env
который содержит пути для переменных environnement (которые не были добавлены к системным переменным при установке. Я проверил.
другие вопросы по той же проблеме здесь и здесь, например, все ли используют winbuild версии gstreamer. Почему это так?
Я полностью потерялся в этом.
редактировать
хорошо, мне это удалось использование SDK для Gstreamer 0.10 (в котором есть pygst.py
), но нет ли способа использовать серию gstreamer 1.0, так как 0.10-это "конец жизни"?
3 ответов
Это немного поздно, но, надеюсь, это поможет.
самый простой способ использовать GStreamer 1.0-скачать последнюю версию: http://sourceforge.net/projects/pygobjectwin32/files/
это установит модули Python (2.7 или 3.3) и, необязательно, GStreamer с плагинами.
однако, если у вас уже есть GStreamer 0.10 SDK (от docs.gstreamer.com/display/GstSDK/Home) и старая установка GStreamer 1.0 где-то, там может будут некоторые проблемы с запуском программ GStreamer 0.10 Python, таких как ImportError: DLL load failed и т. д. Вот моя подробная настройка для всего:
установка модулей GST 0.10 SDK и Python
- установить SDK из docs.gstreamer.com/display/GstSDK/Installing + на + окна. Проверьте и установите переменные среды
GSTREAMER_SDK_ROOT_X86=..ваш sdk dir
GST_PLUGIN_PATH=%GSTREAMER_SDK_ROOT_X86%\lib\gstreamer-0.10
Path=%GSTREAMER_SDK_ROOT_X86%\bin;%GSTREAMER_SDK_ROOT_X86%\lib;%Path% - установить pygtk-all-in-one-2.24.2.с Win32-py2.7 от ftp.gnome.org/pub/GNOME/binaries/win32/
- на Вашем сайте Python-packages dir создайте файл pygst.pth. Поместите следующие строки, которые должны указывать на каталоги модулей Python GSt 0.10:
..ваш %GSTREAMER_SDK_ROOT_X86% \ lib\python2.7\site-пакеты
..ваш %GSTREAMER_SDK_ROOT_X86% \lib\python2.7\site-packages\gst-0.10
- после этого pydoc должен иметь возможность найти документацию для pygst, gst и т. д. Кроме того, intellisense в инструментах Python для Visual studio также должен работать (после восстановления БД завершения и перезапуска VS)
установка модулей GST 1.0 и Python
- установите GStreamer 1.0 от gstreamer.freedesktop.org/data/pkg/windows/. Проверить среду:
GSTREAMER_1_0_ROOT_X86=..ОКП установки 1.0 реж
GST_PLUGIN_PATH_1_0=%GSTREAMER_1_0_ROOT_X86%\lib\gstreamer-1.0\
Path=%GSTREAMER_1_0_ROOT_X86%\bin;%GSTREAMER_1_0_ROOT_X86%\lib;%Path% - установить pygi-aio-3.10.2-win32_rev14-setup из приведенной выше ссылки Sourceforge. Включите GStreamer и плагины в установку.
- создать файл gi.pth:
%GSTREAMER_1_0_ROOT_X86%\bin
%GSTREAMER_1_0_ROOT_X86%\lib - я удалил все от сайт-пакеты / gnome за исключением:
libgirepository-1.0-1
libpyglib-gi-2.0-python27-0
lib С .typelib файлы
и несколько простых примеров, кажется, работают нормально. - Intellisense в VS не кажется работать на импорт из gi.хранилище.
-
вы можете проверить свою установку следующим образом:
python2-c "импорт gi; gi.require_version ('Gst',' 1.0'); от gi.хранилище НДС на импорт; НДС.init (нет); pipeline = Gst.parse_launch ('playbin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm'); трубопровод.set_state(Gst.Государство.Играть); автобус = трубопровод.get_bus (); msg = шина.timed_pop_filtered(Gst.CLOCK_TIME_NONE, Gst.Класса messagetype.ОШИБКА| компания GST.Класса messagetype.EOS)"
изменить: Если вы используете оба GStreamer0.10 и GStreamer1.0 для GStreamer0 лучше создать отдельную виртуальную среду.10 и поставил .ПТГ файлы в его сайт-пакеты. См. мой комментарий ниже.
HTH, Тома
Шаг 1: Windows 8.1 64-разрядная
Шаг 2: Загрузите и установите Python
C:\>wget https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64.msi
C:\>./python-2.7.9.amd64.msi
C:\>cd C:\Python27
C:\>pwd
C:\Python27
Шаг 3: загрузите установить привязки Python для Gstreamer 1.0
C:\>wget http://sourceforge.net/projects/pygobjectwin32/files/pygi-aio-3.14.0_rev14-setup.exe
C:\>unzip "pygi-aio-3.14.0_rev14-setup.exe"
C:\>whereis_unzipped "pygi-aio-3.14.0_rev14-setup.exe"
C:\pygi
C:\>./c:\pygi\setup.exe
Шаг 4: запустите этот код
C:\>C:\Python27\python.exe -c "import gi; gi.require_version('Gst', '1.0'); from gi.repository import Gst; Gst.init(None); pipeline = Gst.parse_launch('playbin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm'); pipeline.set_state(Gst.State.PLAYING); bus = pipeline.get_bus();msg = bus.timed_pop_filtered(Gst.CLOCK_TIME_NONE, Gst.MessageType.ERROR | Gst.MessageType.EOS)"
Шаг 5: Вы должны подождать 10 минут, чтобы увидеть результат, похожий на следующий. Потому что это почему-то требует времени
установщик от http://sourceforge.net/projects/pygobjectwin32/files/ работы для тест, что Том дал. Попробуйте сопоставить плагины, установленные установщиком pygi, с плагинами официального gstreamer.
установщик пытается быть "портативной и частной" установкой для каждого python без изменений registry / environmen vars.
моя заметка о DLL времени выполнения, рекомендуется не смешивать время выполнения, потому что один из pygi сделан специально для python a.к. связанный с msvcrt, предпочитаемый python, и используйте соглашение stat (), которое также используется python. Если публичный api такой glib stat () использует другое соглашение, чем другая dll, то смешивание во время выполнения может привести к Тихому сбою. Кроме этого, он может работать нормально.