gpt4 book ai didi

c - 为什么选择gst_element_factory_find can't find factory “decodebin”?

转载 作者:行者123 更新时间:2023-12-02 03:33:44 30 4
gpt4 key购买 nike

我已经安装了gstreamer-1.4.0,以便创建用于解码视频文件的简单应用。
我尝试创建的管道看起来很简单:

filesrc location="file.h264" ! decodebin ! filesink location="file.raw"

当我使用gst-launch-1.0启动该管道时,该管道运行良好,但是当我尝试运行用C编写的程序时,找不到名为“decodebin”的工厂。
GstElementFactory *factory;
factory = gst_element_factory_find("decodebin");
if( !factory )
// fail

上面的代码总是失败(工厂为NULL)。 gst-inspect-1.0可以正确识别“decodebin”,因此我的猜测是GST_PLUGIN_PATH或类似的地方出了问题,但我不知道如何正确配置它。但这只是基于我的猜测,我的应用程序从工厂中创建了其他元素(例如,filerc或filesink),这些元素位于名为coreelements的插件中,而来自插件“playback”的解码bin仍然失败。

我的问题:如何识别我的gstreamer配置以便识别所有插件,而不仅仅是核心元素?

如果我跳过了一些重要信息,请告诉我,以便我可以尽快添加它:)

//编辑:
假设我已经从源代码安装了gstreamer(我正在使用ubuntu 14.04)。
我还从源头安装了所有插件(基础,包,好)。
安装目录为/opt/gstreamer-1.4.0/,也许这会引起一些问题。

如果我执行命令:
echo $GST_PLUGINS_PATH

我得到的只是一个空行,当我尝试显示其他GST_ *环境变量的值时,效果相似。

更具体的问题:为了使非coreelements插件正常工作,我应该在哪些目录后附加变量?

如果这个问题过于笼统,则可以:

gst_element_factory_find(“factory_name”)如何检查给定工厂是否存在?

最佳答案

不知道我是否能解决所有问题,但是现在我通过将libplayback.so和其他编译的插件二进制文件复制到libcoreelements.so文件夹中解决了我的问题。

看来问题是由非标准的安装目录引起的,
所以我的解决方案是一个修复程序,因为我仍然不知道gst-inspect-1.0如何识别所有插件,而gst_element_factory_find()无法识别。任何进一步的内部将不胜感激:)

关于c - 为什么选择gst_element_factory_find can't find factory “decodebin”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25041638/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com