用于Windows的gstreamer python绑定

Rao*_*oul 8 python windows gstreamer python-gstreamer

我正在研究gstreamer作为从列表中选择视频设备以将其提供给opencv脚本的方法.

我绝对不明白如何在Windows中使用gstreamer与python.我从gstreamer官方网站安装了Windows gstreamer 1.07二进制文件.但是,我无法在python中导入和模块.pygstgst

>>> import pygst

Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import pygst
ImportError: No module named pygst
>>> 
Run Code Online (Sandbox Code Playgroud)

我检查了gstreamer安装,似乎没有pygst.py提供.但是,有一个名为的文件gst-env包含环境变量的路径(在安装时未添加到系统变量中.我检查过.

关于同一问题的其他问题在这里这里,例如,都使用gstreamer 的winbuild版本.为什么会这样?

我完全迷失在这一个.

编辑

好吧,我使用SDK for Gstreamer 0.10(其中有一个pygst.py)管理它,但是没有办法使用Gstreamer 1.0系列,因为0.10是"寿命终止"?

Tom*_*Tom 12

这有点晚了,但希望它会有所帮助.

使用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加载失败等这是我对一切的详细设置:

安装Gst 0.10 SDK和Python模块

  1. 从docs.gstreamer.com/display/GstSDK/Installing+on+Windows安装SDK.检查并设置环境变量
    GSTREAMER_SDK_ROOT_X86 = ..您的sdk目录
    GST_PLUGIN_PATH =%GSTREAMER_SDK_ROOT_X86%\ lib\gstreamer-0.10
    路径=%GSTREAMER_SDK_ROOT_X86%\ bin;%GSTREAMER_SDK_ROOT_X86%\ lib;%Path%
  2. 从ftp.gnome.org/pub/GNOME/binaries/win32/ 安装pygtk-all-in-one-2.24.2.win32- py2.7
  3. 在你的Python站点包中,dir创建文件pygst.pth.放下以下行,它们应该指向GSt 0.10 Python模块目录:
    ..你的%GSTREAMER_SDK_ROOT_X86%\ lib\python2.7\site-packages
    ..你的%GSTREAMER_SDK_ROOT_X86%\ lib\python2.7\site-packages\gst-0.10
  4. 之后,pydoc应该能够找到pygst,gst等的文档.另外,Visual Studio的Python工具中的intellisense也应该工作(在重建完成数据库并重新启动VS之后)

安装Gst 1.0和Python模块

  1. 从gstreamer.freedesktop.org/data/pkg/windows/安装GStreamer 1.0.检查环境:
    GSTREAMER_1_0_ROOT_X86 = .. Gst 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%
  2. 从上面的Sourceforge链接安装pygi-aio-3.10.2-win32_rev14-setup.在安装中包含Gstreamer和插件.
  3. 创建文件gi.pth:
    %GSTREAMER_1_0_ROOT_X86%\ bin
    %GSTREAMER_1_0_ROOT_X86%\ lib
  4. 我删除了site-packages/gnome目录中的所有内容,除了:
    libgirepository-1.0-1
    libpyglib-gi-2.0- python27-0
    lib目录和.typelib文件
    ,一些简单的例子似乎工作正常.
  5. VS中的Intellisense似乎不适用于从gi.repository导入.
  6. 您可以像这样测试您的安装:

    python2 -c"import gi; gi.require_version('Gst','1.0');来自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)"

编辑:如果同时使用GStreamer0.10和GStreamer1.0,最好为GStreamer0.10创建一个单独的虚拟环境,并将.pth文件放在其site-packages目录中.请参阅下面的评论.

HTH,汤姆