我目前正在尝试使用GSTREAMER Android SDK 2013.6版本配置RTMP插件。我能够交叉编译RTMP插件,并成功创建了libgstrtmp.a和libgstrtmp.la文件。
然后我将这些文件添加到GSTREAMER Android SDK的libs文件夹中的gstreamer-0.10文件夹中。然后我从SDK基础中获取了示例教程-5,并在Android.mk文件中进行了更改,然后重新编译项目。
毕竟这个RTMP插件在libgstreamer_android.so中静态注册但是当我运行提供rtmp流的应用程序时,我得到以下错误
g_type_add_interface_static:断言`G_TYPE_IS_INSTANTIATABLE(instance_type)'失败
g_once_init_leave:断言`结果!= 0'失败
以及以下警告。
类型
的指定实例大小GstRTMPSrc' is smaller than the parent type's
GstPushSrc'实例大小指定的类型
的实例大小GstRTMPSink' is smaller than the parent type's
GstBaseSink'实例大小
有人可以帮我解决此错误。根据Gstreamer SDK FAQ,实例和父类之间的这种不匹配可能是由于编译了两个不同版本的gstreamer。这是我的插件编译与SDK的其他版本。
我的另一个问题是针对什么版本的gstreamer版本是Android SDK编译的。因为这可能是错误的主要罪魁祸首。
感谢你。
Dhruv直升机。
答案 0 :(得分:1)
您可能想要使用1.x版本的GStreamer,可在此处找到当前最新的稳定版本:http://gstreamer.freedesktop.org/data/pkg/android/1.2.4.1/ 此版本还包含RTMP插件。
此外,社区不再支持0.10版本,因为您已经缺少数千个错误修正,新功能和其他改进。