android - 在 Android 上解码 H.264(AVC) 比特流?

标签 android java-native-interface h.264 video-codecs stagefright

我正在编写一个需要解码 H.264(AVC) 比特流的应用程序。我发现/frameworks/base/media/libstagefright/codecs/avc 中存在 AVC 编解码器源,有谁知道如何在 Android 应用程序中访问这些编解码器?我猜是通过 JNI 实现的,但不清楚如何做到这一点。

经过一番调查,我认为一种方法是在 Android 源代码中创建我自己的类和 JNI 接口(interface),以便能够在 Android 应用程序中使用 CODECS。 另一种不需要对 Android 源代码进行任何更改的方法是将 CODECS 作为共享库包含在我的应用程序中,使用 NDK。对这些有什么想法吗?哪种方式更好(如果可行)?

我没有找到太多有关 Stagefright 的信息,如果有人能指出一些,那就太好了?我正在 Android 2.3.3 上进行开发。

非常感谢任何评论。谢谢!

最佳答案

Stagefright 不支持基本 H.264 解码。然而它确实有 H.264 解码器组件。理论上这个库是可以用的。但实际上,由于其依赖性,很难将其用作独立库。

最好的方法是使用 JNI 包装的独立 h.264 解码器(就像 ffmpeg 中可用的解码器)。

关于android - 在 Android 上解码 H.264(AVC) 比特流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880885/

相关文章:

android - getSerializableExtra() 随机为 null

java - Android游戏开发几个场景

android - 在 Android 中使用 OpenSSL 的 AES-256 CBC 加密/解密字符串

java - 如何从 Java 调用 C# 类中的 C# 方法?

ffmpeg - Http 直播流视频分段。非 Mac 方法

ffmpeg - 使用 qp 将 YUV 编码为 mP4 以获得最高质量

android - 'drawable' 文件夹中的图像自动调整大小?

android - gradle中的依赖冲突

带有使用 gsl 的 C 函数的 Java JNI。

c++ - live555流媒体转发使用方法