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

Posted

技术标签:

【中文标题】使用 GStreamer 在 Android 上进行硬件视频解码【英文标题】:Hardware video decoding on Android using GStreamer 【发布时间】:2013-07-13 14:32:46 【问题描述】:

我必须在 android 上实现一个 GStreamer 管道,它将从 linux 机器上的 mpegts 服务器获取实时 mpegts 流(也通过 GStreamer 实现)。

现在,我有一个 Samdung Galaxy Tab2,5113,它有 Android-4.1.2-JellyBean 和 API 级别=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】:

我们早在一段时间前就解决了这个问题。

只是把它放在这里供其他人参考。

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

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

对我们来说,我们尝试了 amcviddec-omxtiducati1videodecoder,它就像一个魅力。

问候, 优素福·侯赛尼。

【讨论】:

可以给我看看你的管道,我也卡在这里了,对我很有帮助。 @moonzai 相关:gstreamer-devel.966125.n4.nabble.com/…

以上是关于使用 GStreamer 在 Android 上进行硬件视频解码的主要内容,如果未能解决你的问题,请参考以下文章

使用 gstreamer 在 android 上录制音频(使用 Qt5)

Android Studio中的Gstreamer示例

将使用 NDK 和 Gstreamer 的 Eclipse android 项目迁移到 Android Studio

使用 ANativeWindow_lock 返回错误 -22 与 android Gstreamer SDK

GStreamer使用详解

Gstreamer使用说明