我正在尝试 GStreamer 测试应用程序,但在运行时以下行失败:
demuxer = gst_element_factory_make ("oggdemux", "ogg-demuxer"); // returns NULL
我正在使用 MacOSX 并通过 MacPorts 安装了 GStreamer、libogg 和 vorbis-tools。所以我不明白为什么它会失败。
有关如何使其工作的任何建议?
编辑:解决了!
问题是我需要从 gst-plugins-good 包安装自动检测插件。
以下是使其工作的操作列表:
删除 MacPorts 安装:
sudo port uninstall gstreamer
将以下行添加到 ~/.profile
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
下载 gstreamer、gstreamer-plugins-base 和 gstreamer-plugins-good 源。
构建和安装 gstreamer (./configure, make, make install)
构建并安装 gstreamer-plugins-base (./configure, make, make install)
对于 gstreamer-plugins-good 我只构建了 autodetect 包,因为构建所有会导致一些我现在不需要或不关心的插件的错误。我是这样做的:
./configure
cd gst/autodetect/
make
sudo make install
现在程序构建并运行。然而,我似乎没有得到任何音频输出 :( 但这是另一个问题。
最佳答案
读取gstelementfactory.c
(GStreamer version 0.10.25)第463行(gst_element_factory_make
函数定义),有3个错误导致NULL
返回:
NULL
(在你的代码中显然可以) gst_element_factory_find
返回 NULL
) gst_element_Factory_create
返回 NULL
) 该代码执行大量日志记录,因此如果您能够打开它,那么您可能会获得有关潜在问题的进一步提示。
要检查 oggdemux 插件是否配置正确,请尝试运行:
gst-inspect oggdemux
如果这没有返回结果,请尝试使用
gst-register
注册它。关于c++ - GStreamer gst_element_factory_make 失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1714168/