- 本节介绍 Android 设备和 H.264视频的规格,以及组合播放次数时的注意事项。
关于 H.264视频播放失败的情况
- 根据设备/操作系统的不同,播放 H.264视频时,可能会出现以下错误并且播放可能会失败。
[CRIWARE] Error:E2022040400:CodecException is occurred: android.media.MediaCodec.error_neg_5001
[CRIWARE] Error:E20220419617:CodecException is occurred: android.media.MediaCodec.error_neg_5001
[CRIWARE] Error:E2021062501:MediaCodec failed to configure. This device may not support movie resolution:1920 x 1080...
[CRIWARE] Error:E09031001M: Decoder core error.
[CRIWARE] Error:E2022060801:CodecException is occurred: android.media.MediaCodec.error_neg_5001
[CRIWARE] Error:E2022062829:CodecException is occurred: android.media.MediaCodec.error_neg_5001
[CRIWARE] Error:E2022060802:MediaCodec failed to configure. This device may not support movie resolution:1920 x 1080...
[CRIWARE] Error:E09031001M: Decoder core error.
- 此错误是由于以下情况 (A) 至 (E) 之一而发生的。
错误发生案例 | 原因 | 说明 |
(A) | 单分辨率上限 | 播放一部 H.264视频时,分辨率/fps 超出设备/操作系统支持的分辨率/fps 范围 |
(B) | 不支持的输出格式 | 解码输出格式受到终端/操作系统的限制,H.264视频本身的解码过程失败 |
(C) | 播放次数上限 | 播放多个 H.264视频(*1) 时,播放次数超过设备/操作系统支持的最大同时播放数 |
(D) | 分辨率区域上限 | 播放多个 H.264视频时 (*1),设备/操作系统不支持根据 H.264视频的分辨率计算出的总区域. |
(E) | 未知 | 由于 (A) 至 (D) 以外的原因,该终端/操作系统上的 H.264 播放失败 |
- 发生上述错误时,请检查其对应的是(A)至(E)中的哪一个,并根据具体情况决定对策。
请特别注意(D):分辨率区域上限可能适用。
如何检查每个案例
- 您可以使用 H.264 区域上限检查器 检查错误 E20220419617 和 E2022062829 对应于情况 (A) 到 (E) 中的哪一种。
根据usr_android_specified_tips_h264_060在屏幕、日志、本地yaml文件中输出的检查结果,按照以下步骤进行检查。
有关如何读取结果的信息,请参阅 usr_android_specified_tips_h264_area_limit_checker_result。
- 错误发生时正在播放的H.264视频的分辨率宽度/高度超过区域上限检查器输出结果中的最大宽度/最大height或小于最小width/最小height。
- → 如果适用,对应(A):单次分辨率上限
- → 如果不适用,执行2。 2、屏幕显示的“H.264电影可播放数量”在任意分辨率下均为0 / log和yaml输出结果中估计面积下限和估计面积上限的值均为0
- →如果适用,则对应于 (B):不支持的输出格式
- → 如果不适用,3。
- 当错误发生时(1*),对应的ManaPlayer数量超过了屏幕/日志/yaml输出结果中显示的最大解码器句柄。
- → 如果适用,则对应于 (C):最大播放次数
- → 如果不适用,执行4。 4、错误对应的H.264视频的总面积(1*)超过了面积上限检查器测得的面积上限值(*2)。
- → 如果适用,对应(D):分辨率区域上限
- →如果不适用,则对应于(E):未知。
- (*3):在当前 Android 版本的 Sofdec中,播放整个库中的多个 H.264视频时的上限限制为最多 16 个。
发生 E20220419617 或 E2022062829 时该怎么办
- 对于错误情况(A)至(E),可以考虑以下解决方案(1)至(6)之一。
对策方针|概要|内容 |
(1) | 单分辨率降低 | 重新编码要在设备/操作系统支持的分辨率/fps (*2) 范围内播放的 H.264视频 |
(2) | 播放时序调整 | 立即丢弃已经播放过的 ManaPlayer,并确保播放过 H.264视频的ManaPlayer和正在播放 H.264 影片的 ManaPlayer.264视频同时存在。 |
(3) | 降低同时播放数量 | 降低 (*1) 对应的 H.264视频的同时播放数量 |
(4) | 降低总分辨率区域 | 与 (1)/(2)/(3) 结合使用,可减少多次播放 H.264视频时对应 (*1 ) |
(5) | 编解码器更改 | 将应用程序中播放的部分或全部 H.264视频替换为使用 VP9 或Sofdec(*4) 编码的数据 |
(6) | 视为不兼容的终端 | 将发生错误的终端/操作系统视为该应用程序的不兼容终端 |
(7) | 支持咨询 | 我们的技术支持 错误查询/内容咨询 |
- 对于错误情况 (A) 至 (E),可能的响应 (1) 至 (6) 请参阅下表。
错误发生情况(A)至(E)/可能的对策(1)至(6)对应表
| (A) 单一分辨率上限 | (B) 不支持的输出格式 | (C) 播放次数上限 | (D) 分辨率区域上限 | (E) 未知 |
(1) 较低分辨率 | ○ | × | × | △ | × |
(2) 播放时序调整 | × | × | × | △ | × |
(3) 减少同时播放数量 | × | × | ○ | △ | × |
(4) 较低总分辨率区域 | × | × | △ | ○ | × |
(5) 更改编解码器 | ○ | ○ | ○ | ○ | ○ |
(6) 视为不兼容终端 | ○ | ○ | ○ | ○ | ○ |
(7) 服务台咨询 | × | △(*5) | × | ○ | ○ |
- (*5):指我们的技术支持提供的以下特殊支持。
- 我们将调查是否存在可以在应用程序操作环境中输出的H.264解码格式,如果存在,我们将考虑专门为该终端/操作系统创建和提供一个库。
- 还可以联系设备制造商/Google 并搜索更新操作系统等解决方案。但请注意,如果您请求设备制造商/Google 合作,可能需要一段时间才能回复,而且问题也不一定能得到解决。