繁体   English   中英

在Jelly Bean之前的Android中用于H.264的硬件加速视频解码

[英]Hardware accelerated video decode for H.264 in android prior to Jelly Bean

我正在开展视频会议项目。 我们使用软件编解码器对视频帧进行编码和解码,这样可以在较低分辨率(高达320p)下正常工作。 我们计划支持我们的应用程序,以获得高达720p的更高分辨率。 我开始知道硬件加速可以很好地完成这项工作。

由于硬件编解码器api媒体编解码器可从Jelly Bean开始使用,我已将其用于编码和解码,并且工作正常。 但我的应用程序得到2.3的支持。 因此,我需要对30帧/秒的H.264帧进行硬件加速视频解码。

在研究中发现了通过修改舞台惊吓框架来使用OMX编解码器的想法。我已经读过H.264的硬件解码器可以从2.1获得,编码器是从3.0开始。 我已经浏览了本网站提供的许多文章和问题,并确认我可以继续。

我曾在这里阅读过关于怯场的建筑-架构和这里 - stagefright它是如何工作的

我在这里阅读OMX编解码器- 使用android-hardware-decoder-with-omxcodec-in-ndk

我有一个起步问题和一些关于它的实现的混淆。我想有一些关于它的信息。

  1. 为了在我的代码中使用OMX编解码器,我应该使用整个android源代码树构建我的项目,还是可以通过添加来自AOSP源的一些文件来完成(如果是的话,那就是全部)。
  2. 从头开始我应该遵循哪些步骤来实现它。

有人可以给我一个指导方针

谢谢...

描述的集成的最佳例子OMXCodec在本地层是命令行实用程序stagefright如可以观察到此处GingerBread本身。 此示例显示如何创建OMXCodec

有些要点需要注意:

  1. OMXCodec的输入应该建模为MediaSource ,因此,您应该确保您的应用程序处理此要求。 创建基于MediaSource的源的示例可以在record实用程序文件中DummySource

  2. 解码器的输入即MediaSource应通过read方法提供数据,因此,您的应用程序应为每次read调用提供单独的帧。

  3. 可以使用NativeWindow创建解码器以进行输出缓冲区分配。 在这种情况下,如果您希望从CPU访问缓冲区,您可能应该参考此查询以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM