在 macOS 中安装 gst-python

问题描述 投票:0回答:1

我使用官方二进制文件在 macOS (Sonoma) 上安装了 GStreamer 1.22.10。我意识到 gst-python 不会自动安装,因此我克隆了 GStreamer Gitlab 存储库,并按照 gst-python 子项目中的相关说明进行安装。

我使用的是通过自制软件安装的Python(3.12),所以我在安装过程中将其pygi覆盖目录给了介子:

meson setup builddir -Dpygi-overrides-dir=/opt/homebrew/lib/python3.12/site-packages/gi/overrides

Pygobject3也通过brew安装在路径中:

/opt/homebrew/Cellar/pygobject3/3.46.0_1

现在当我做

python -c "import gi; gi.require_version('Gst', '1.0');"
时, 我收到一个错误,指出名称空间 Gst 不可用。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/homebrew/lib/python3.12/site-packages/gi/__init__.py", line 126, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gst not available

如有任何帮助,我们将不胜感激。

注意:如果使用brew安装GStreamer,则包含gst-python,但这不是我的首选方法,因为brew版本不包含我需要的一些包,例如webrtc。

python macos gstreamer pygobject
1个回答
0
投票

我也遇到同样的问题。

据我了解,gst-python只是常规 GStreamer Python 绑定的扩展,并添加了一些 Python 风格的“语法糖”。因此,在 Python 中创建 GStreamer 应用程序并不是真正的要求。

错误

Namespace Gst not available
意味着它无法找到为 GStreamer 动态创建常规 Python 绑定所需的 gobject-introspection 信息。

此信息通常存储在 *.typelib 文件中(例如

Gst-1.0.typelib
)。

使用官方二进制文件安装适用于 MacOS 的最新 GStreamer 时,这些文件似乎丢失了。

但是,当我通过 Homebrew 安装 GStreamer 时,它们安装正确:

$ find /opt/homebrew -name "Gst*.typelib"
/opt/homebrew/lib/girepository-1.0/GstVideo-1.0.typelib
/opt/homebrew/lib/girepository-1.0/GstRtsp-1.0.typelib
/opt/homebrew/lib/girepository-1.0/GstCodecs-1.0.typelib
/opt/homebrew/lib/girepository-1.0/GstAllocators-1.0.typelib
/opt/homebrew/lib/girepository-1.0/GstSdp-1.0.typelib
/opt/homebrew/lib/girepository-1.0/GstNet-1.0.typelib
/opt/homebrew/lib/girepository-1.0/Gst-1.0.typelib
...

python -c "import gi; gi.require_version('Gst', '1.0');"
有效。

但遗憾的是,Homebrew 安装对我来说似乎已损坏(MacOS 14.3.1、GStreamer 1.22.10)。

© www.soinside.com 2019 - 2024. All rights reserved.