草庐IT

python - 适用于 Windows 的 gstreamer python 绑定(bind)

coder 2023-08-20 原文

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

我完全不明白如何在 Windows 中将 gstreamer 与 python 一起使用。我从 gstreamer official website 安装了 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 的文件包含环境变量的路径(在安装时未添加到系统变量中。我检查过。

同一问题的其他问题herehere ,例如,是否都使用 gstreamer 的 winbuild 版本。为什么会这样?

我完全迷失了这一点。

编辑

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

最佳答案

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

使用 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
    Path=%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 站点包目录中创建文件 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 工具中的智能感知也应该可以工作(在重建 Completion DB 并重新启动 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 文件放在它的 site-packages 目录中。请参阅下面我的评论。

喂, 汤姆

关于python - 适用于 Windows 的 gstreamer python 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17278953/

有关python - 适用于 Windows 的 gstreamer python 绑定(bind)的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  3. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  4. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  5. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  6. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  7. ruby - inverse_of 是否适用于 has_many? - 2

    当我使用has_one时,它​​工作得很好,但在has_many上却不行。在这里您可以看到object_id不同,因为它运行了另一个SQL来再次获取它。ruby-1.9.2-p290:001>e=Employee.create(name:'rafael',active:false)ruby-1.9.2-p290:002>b=Badge.create(number:1,employee:e)ruby-1.9.2-p290:003>a=Address.create(street:"123MarketSt",city:"SanDiego",employee:e)ruby-1.9.2-p290

  8. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  9. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  10. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

随机推荐