在Android上使用GStreamer进行硬件视频解码

5
我需要在Android上实现一个GStreamer管道,该管道将从Linux机器上的mpegts服务器获取实时的mpegts流(也是通过GStreamer实现的)。
现在,我有一台Samsung Galaxy Tab2 5113,它运行Android-4.1.2-JellyBean 并且 API level=16。
我的接收管道如下: data->pipeline = gst_parse_launch("udpsrc caps=\"video/mpegts, systemstream=true, packet-size=188\" ! tsdemux ! queue ! h264parse ! amcviddec-omxgoogleh264decoder ! eglglessink", &error);
这是根据GStreamerSDK的Android-Tutorial-3。
当我按播放按钮时,出现以下错误: 06-26 00:04:56.927: D/GStreamer+tutorial-3(7201): 0:00:05.920807000 0x5a65c320 jni/tutorial-3.c:88:set_ui_message 设置消息为:从元素amcvideodec-omxgoogleh264decoder0收到错误:GStreamer遇到了一个通用的支持库错误。
Eclipse IDE的logcat显示了应用程序的更详细日志:http://pastebin.com/EX8sgcEp 因此,似乎amcviddec-omxgoogleh264decoder元素无法出列输入数据,同时GStreamer遇到了一个库错误。
希望能得到任何帮助或建议。

1
我也遇到了同样的错误。你找到解决方案了吗? - gregoiregentil
1个回答

4

我们一段时间前就解决了这个问题。在这里分享供其他人参考。

问题是,如果我们要使用amcviddec-omxgoogleh264decoder,除了gstreamer应用程序之外,还需要安装一些依赖文件。不确定它们具体是什么。

无论如何,如果一个人看到在android根目录下的/etc/media-codec.xml文件,我们将会知道设备所支持的所有多媒体编解码器。这包括硬件编解码芯片所支持的编解码器。

对于我们来说,我们尝试了amcviddec-omxtiducati1videodecoder,并且它完美地工作了。

祝好, Yusuf Husainy。


1
你能展示一下你的流程吗?我也卡在这里了,对我来说会非常有帮助。 - moonzai
@moonzai 相关:http://gstreamer-devel.966125.n4.nabble.com/Hardware-decoding-on-android-using-GStreamer-td4660630.html - Iván Pérez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接