我按照GStreamer Plugin Writer's Guide(1.7.1.1)中的说明进行操作:
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html
为了构建一个新的gstreamer插件。基本上我运行了make_element,然后按照描述编辑了Makefile.am。令人惊讶地制作和安装工作,我最终得到:
/usr/local/lib/gstreamer-1.0/libgstframe_grabber.la
/usr/local/lib/gstreamer-1.0/libgstframe_grabber.so
据我了解,gst-inspect应该自动找到这个插件。该指南说需要将/usr/local/lib/gstreamer-1.0添加到GST_PLUGIN_PATH中,以便找到此目录中的插件。另一个文档声明该目录是自动搜索的。我尝试使用和不使用环境变量,但没有运气。
现在我应该说我刚开始使用gstreamer而且我正在遭受全面的信息过载。我已经阅读了这么多文档,但我甚至不知道我是在构建gstreamer1.0还是gstreamer0.10插件(我认为该指南适用于gstreamer1.0,因为指南的版本是1.7.1.1但无法确定。
有人能在这里给我一个线索吗?
答案 0 :(得分:2)
有许多可能的原因导致此问题
首先,检查您的插件是否被命令gst-inspect-1.0 -b
列入黑名单。
如果你的插件出现在这里,那就意味着它已被列入黑名单
在这种情况下,删除目录~/.cache/
,然后再次运行gst-inpect-1.0
。
这将强制 GStreamer重新扫描插件列表。如果黑名单的原因尚未解决,gst-inpect
可能打印出原因。
另一个可能的原因(但不太可能发生)是将GST_REGISTRY_UPDATE
设置为no
,这将迫使GStreamer不重新扫描插件目录,因此找不到新的插件
P / s:该指南适用于GStreamer 1.0
答案 1 :(得分:0)
如果您尝试从黑名单中删除插件但仍未显示,请尝试以下操作:
export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0
/usr/local/lib/gstreamer-1.0
是make在插件中使用的默认目录。如果您已定义了其他目录,请使用它。
然后运行gst-inspect-1.0
,您将找到新的已编译和已安装的插件。
这对我有用。
每次在shell中创建一个export
的静态管道或运行自己的代码时,都需要执行gst-launch-1.0
。除了在.bashrc文件中输入之外,我找不到任何替代方法使其成为永久性的。如果您有,请通过评论建议。
答案 2 :(得分:0)
如果您在gst-plugin目录中运行./configure --help
,则会看到以下内容:
By default,
make install' will install all the files in
/usr/local/bin', /usr/local/lib' etc. You can specify
an installation prefix other than
/usr/local' using --prefix',
for instance
--prefix=$HOME'.
如果您是在原始安装后进行的:make install' will install all the files in
,您应该看到保存插件的库的位置(在我的情况下,该文件位于/usr/local/lib/gstreamer-1.0/下,如configure所述)上面的帮助)。
现在,在我的计算机上,GStreamer“官方”插件安装在/usr/lib/i386-linux-gnu/gstreamer-1.0/下。这是应该存储新创建的插件库的位置。
要将插件存储在正确的位置,请使用以下参数运行configure:
/usr/local/lib' etc. You can specify
an installation prefix other than
后跟--prefix',
for instance
用--libdir和NOT --prefix覆盖很重要! --prefix的使用将在我们不想在/ usr / lib / i386-linux-gnu下粘贴 / lib 。gst-inspect-1.0找不到该插件如果 / lib 已添加到路径。
附加说明:
即使插件在正确的位置,运行gst-inspect-1.0时,您仍可能会看到GStreamer将其列入黑名单。列入黑名单的原因之一可能是您的插件未安装或在平台上找不到所需的共享库。 sudo updatedb && locate libgst[NAME_OF_YOUR_PLUGIN].so
命令可以帮助您确定插件可能具有的依赖性。只需运行ldd [YOUR_GSTREAMER_LIBRARY] .so