gstreamer python绑定的窗口

我正在调查gstreamer作为从列表中select一个video设备的手段,将其提供给opencv脚本。

我绝对不明白如何在Windows中使用python的gstreamer。 我从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 >>> 

我检查了gstreamer安装, 似乎没有提供pygst.py 然而,有一个名为gst-env的文件,其中包含环境variables的path(在安装时没有添加到系统variables中。

关于这里和这里相同问题的其他问题,例如,都使用gbureamer的winbuild版本。 为什么?

我完全失去了这一个。

编辑

好吧,我使用Gstreamer 0.10(其中有一个pygst.py )的SDK来pipe理它,但是没有办法使用Gstreamer 1.0系列,因为0.10是“结束生命”?

Solutions Collecting From Web of "gstreamer python绑定的窗口"

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

使用GStreamer 1.0最简单的方法是从http://sourceforge.net/projects/pygobjectwin32/files/下载最新版&#x672C;

这将安装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 dir
    GST_PLUGIN_PATH =%GSTREAMER_SDK_ROOT_X86%\ lib中\ gstreamer的-0.10
    路径=%GSTREAMER_SDK_ROOT_X86%\ bin中;%GSTREAMER_SDK_ROOT_X86%\ lib中;%路径%
  2. 从ftp.gnome.org/pub/GNOME/binaries/win32/安装pygtk-all-in-one-2.24.2.win32- py2.7
  3. 在你的Python站点包的目录下创建文件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 \
    路径=%GSTREAMER_1_0_ROOT_X86%\ bin中;%GSTREAMER_1_0_ROOT_X86%\ lib中;%路径%
  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'); 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)”

编辑:如果同时使用GStreamer0.10和GStreamer1.0,最好为GStreamer0.10创建单独的虚拟环境,并将.pth文件放入其站点包目录中。 看到我下面的评论。

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步:下载安装Gstreamer 1.0的Python绑定

 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)" 

第五步:您必须等待10分钟,才能看到类似于以下的结果。 因为某些原因需要时间

在这里输入图像说明

来自http://sourceforge.net/projects/pygobjectwin32/files/的安装程序应该适用于Tom给出的测试用例&#x3002; 尝试使用官方gstreamer中的pygi installer安装的插件。

安装程序试图对每个python进行“便携式和私有”安装,而不需要修改注册表/环境变量。

我的关于运行时DLL的注意事项,建议不要混合运行时,因为pygi的运行时是专门为python制作的,也可以链接到python首选的msvcrt,并使用python使用的stat()约定。 如果公共api这样的glib的stat()使用不同的惯例比其他的DLL然后运行时混合可能导致无声的崩溃。 除此之外,它可以正常工作。