gpt4 book ai didi

android - 在 Jelly Bean 之前在 Android 中针对 H.264 的硬件加速视频解码

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:09 25 4
gpt4 key购买 nike

我正在从事一个视频 session 项目。我们使用软件编解码器对视频帧进行编码和解码,这对于较低的分辨率(最高 320p)来说效果很好。我们计划支持我们的应用程序以达到 720p 的更高分辨率。我开始知道硬件加速可以很好地完成这项工作。

由于硬件编解码器 api 媒体编解码器从 Jelly Bean 开始可用,我用它进行编码和解码并且工作正常。但是 2.3 支持我的应用程序。所以我需要为 720p 30fps 的 H.264 帧进行硬件加速视频解码。

在研究中,我想到了通过修改怯场框架来使用 OMX 编解码器的想法。我读到 H.264 的硬件解码器从 2.1 开始可用,编码器从 3.0 开始可用。我已经阅读了该站点中提供的许多文章和问题,并确认我可以继续。

我读过怯场建筑 here -architecturehere- stagefright how it works

我读到了 OMX 编解码器 here- use-android-hardware-decoder-with-omxcodec-in-ndk .

我在开始时遇到了麻烦,并且对其实现有些困惑。我想了解一些相关信息。

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

谁能给我一个指导

谢谢...

最佳答案

描述 native 层中 OMXCodec 集成的最佳示例是命令行实用程序 stagefright,可以观察到 hereGingerBread 本身。此示例显示 OMXCodec is created .

一些注意事项:

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

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

  3. 可以使用 NativeWindow 创建解码器以分配输出缓冲区。在这种情况下,如果您希望从 CPU 访问缓冲区,您可能应该引用 this query了解更多详情。

关于android - 在 Jelly Bean 之前在 Android 中针对 H.264 的硬件加速视频解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24034542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com