我是GStreamer编程的初学者。在GStreamer中使用Standard .so文件
我创建了一个在文件中播放媒体的管道。 我想用libogg.so
来解码ogg格式文件,而不是libgstogg.so
。
如何在我的管道中使用此解码器?
我是GStreamer编程的初学者。在GStreamer中使用Standard .so文件
我创建了一个在文件中播放媒体的管道。 我想用libogg.so
来解码ogg格式文件,而不是libgstogg.so
。
如何在我的管道中使用此解码器?
大家是初学者GStreamer的编程似乎:)
你将不得不编写一个程序,可能是C程序,并将其链接对libogg.so而非libgstogg.so
可以实现以上容易使用cmake
要确认什么LIB程序钦点为链接,
strace
,看看哪个位置二进制拿起文件ldd
你似乎错过这里的一些基本概念:
的GStreamer是构建媒体的框架管道从元件
元素通过插件系统定义。插件,文件共享对象(的.so)文件
不能使用只是任何共享对象作为一个插件(GStreamer的不会承认例如libc.so
作为一个插件 - 仅仅是因为libc.so
不提供的GStreamer插件)
所以在你的特殊情况下,你想libogg.so
交换libgstogg.so
。
now libgstogg.so
是一个共享对象,它提供了gstreamer插件的ogg
系列。另一侧的 libogg.so
是与gstreamer无关的ogg muxer/demuxer的实现。
如果你想使用libogg.so
你将不得不创建自己的gstreamer插件,使用libogg.so
。检查documentation如何做到这一点。
在这样做之前,请检查libgstogg.so
实际上做了什么。你会崩溃,它提供了一个gstreamer插件,使用libogg.so
来做实际的muxing/demuxing。它真的只是你正在寻找的桥梁:
$ ldd /usr/lib/x86_64-linux-gnu/gstreamer-0.10/libgstogg.so | grep ogg
libogg.so.0 => /usr/lib/x86_64-linux-gnu/libogg.so.0 (0x00007fc3f9ae7000)