我正在开发一种Android硬件加速视频解码器,用于解码实时H264附件B流。经过一番研究,似乎我需要弄脏手来做这件事。我找到了几个关键字,例如OMXCodec
,Android的操作系统stagefright
和ffmpeg的stagefright
,MediaCodec
API,GStreamer
。我也开始知道 - 硬件无关的实现无法支持所有供应商的硬件。在这个阶段,所有这些都让我感到困惑,因为我没有找到任何直接的资源来推进他们中的任何一个。我的要求是 -
我试图从Android的stagefright的AwesomePlayer.cpp,SimplePlayer.cpp和ffmpeg stagefright的命令行可执行代码中获得一些提示。但是对我来说,没有什么比选择和继续这些东西更有意义了。
我该如何接近?是否有任何有用的资源来获得清晰的直觉?
提前致谢!
答案 0 :(得分:2)
我最近使用MediaCodec API实现了这样一个系统。遗憾的是,此API未在NDK中公开,因此只能从Java层访问。
我发现的最佳资源是这套指南:
http://bigflake.com/mediacodec/
由于您需要在NDK中实现这一点,因此我猜您需要编写一个瘦Java库来与MediaCodec API进行交互,然后通过C ++层中的JNI调用它。
如果您在FFMPEG路线上注意其许可证,则对分布式软件的限制非常严格。
祝你好运!