【问题标题】:MediaCodec Lollipop not decoding raw H264 stream 1080P at 60 FPSMediaCodec Lollipop 未以 60 FPS 解码原始 H264 流 1080P
【发布时间】:2015-11-02 18:19:40
【问题描述】:

这是我对下面线程的后续问题

Slow H264 1080P@60fps Decoding on Android Lollipop 5.0.2

在调试上述问题的根本原因的过程中,我尝试了各种方法以 60 FPS 解码 1080P。

  • 我尝试将 H264 数据包装到 MP4 容器中(不进行转码)。 使用各种股票播放器播放 MP4 似乎很慢(小于 60fps,大约 42fps)。

  • 我尝试使用来自 Android NDK 的本机编解码器示例。仍然没有 进展。

  • 稍后我从 Freescale Android 源代码编译 mxc-vpu-test 代码
    树。有了这个并使用正确的参数,我能够
    以 60 FPS 的速度播放视频。

所以我的怀疑是

  1. 解码器是否能够播放 1080p@60fps 视频,正确 帧率?
  2. 如果是这样,那么为什么 MediaCodec(内部使用 ACodec 代码)无法播放 1080p@60fps 视频。
  3. 我不确定在这个过程中是否使用了 OMXCodec,我在哪里可以获得 OMXCodec 示例代码来解码我的视频。

【问题讨论】:

标签: android h.264 android-mediacodec


【解决方案1】:

解码器是否能够以正确的帧速率播放 1080p@60fps 视频?

完全取决于设备。

如果是这样,那么为什么 MediaCodec(内部使用 ACodec 代码)无法播放 1080p@60fps 视频。

h.264 有级别。 1080p@60 需要 4.2 级或更高级别。如果你设备上的芯片只支持4.0,那它就做不到1080@60。为什么?钱和电池。 1080@60 需要两倍于 1080@30 的解码能力,从而降低了利润率和电池寿命,这是大多数人永远不会注意到的。

我不确定在这个过程中是否使用了 OMXCodec,我在哪里可以获得 OMXCodec 示例代码来解码我的视频。

“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题和原因到目前为止已经解决了它。”

【讨论】:

  • 感谢您的快速回复。我正在使用带有棒棒糖版本 5.0.2 的飞思卡尔 sabreSd 板。我看到飞思卡尔发布了一些 mxc-vpu-test 二进制文件来验证视频播放(直接使用 vpu 引擎),并且使用这个工具我的视频播放正常。所以我真的怀疑 MediaCodec 的能力,需要一些关于如何改进它的想法
猜你喜欢
  • 1970-01-01
  • 2014-02-06
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 2017-02-19
  • 2017-12-16
  • 2016-05-27
  • 2012-10-29
相关资源
最近更新 更多