我回答了我自己的问题如何在 macOS 上安装 gst-python 以使用推荐的 GStreamer 安装程序?使用 miniconda。
然后我继续创建 GStreamer 管道。但我在制作 avdec_h264 解码器时遇到错误:
$ GST_DEBUG=3 python3
Python 3.12.2 | packaged by conda-forge | (main, Feb 16 2024, 20:54:21) [Clang 16.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
>>> import sys
>>> import threading
>>> gi.require_version("Gtk", "3.0")
>>> gi.require_version("Gdk", "3.0")
>>> gi.require_version('Gst', '1.0')
>>> gi.require_version('GstVideo', '1.0')
>>> from gi.repository import GObject, Gst, GstVideo, Gtk, Gdk, GLib, Gio
>>> Gst.init([])
[]
>>> decoder = Gst.ElementFactory.make('avdec_h264', 'decoder')
0:00:08.230811000 98675 0x600001a94630 WARN GST_ELEMENT_FACTORY gstelementfactory.c:765:gst_element_factory_make_valist: no such element factory "avdec_h264"!
>>> decoder == None
True
我成功安装了以下内容:
conda install gst-plugins-good
conda install libavif
conda install ffmpeg
...但随后收到相同的警告,并且
Gst.ElementFactory.make()
返回 None
。
我也尝试过:
conda install decodebin3
conda install gst-ffmpeg
conda install gst-libav
...但得到“...当前渠道无法提供软件包”。
如何安装 avdec_h264 以便对
Gst.ElementFactory.make('avdec_h264', 'decoder')
的调用有效?
我在从源代码构建 gstreamer 时遇到了同样的问题。我怀疑这个元素被删除了,至少在 1.24.3 版本中