CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
关于分辨率和播放次数的说明
本节介绍 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):分辨率区域上限可能适用。
备注
(*1):指以下情况。
  • 在多个 ManaPlayer上同时播放 H.264视频
  • 在另一个 Mana 播放器上播放 H.264视频,而Player播放 H.264 影片或已完成播放的Player不会被丢弃,并且仍然有一些剩余视频

如何检查每个案例

您可以使用 H.264 区域上限检查器 检查错误 E20220419617 和 E2022062829 对应于情况 (A) 到 (E) 中的哪一种。
根据usr_android_specified_tips_h264_060在屏幕、日志、本地yaml文件中输出的检查结果,按照以下步骤进行检查。
有关如何读取结果的信息,请参阅 usr_android_specified_tips_h264_area_limit_checker_result。
  1. 错误发生时正在播放的H.264视频的分辨率宽度/高度超过区域上限检查器输出结果中的最大宽度/最大height或小于最小width/最小height。
    • → 如果适用,对应(A):单次分辨率上限
    • → 如果不适用,执行2。 2、屏幕显示的“H.264电影可播放数量”在任意分辨率下均为0 / log和yaml输出结果中估计面积下限和估计面积上限的值均为0
    • →如果适用,则对应于 (B):不支持的输出格式
    • → 如果不适用,3。
  2. 当错误发生时(1*),对应的ManaPlayer数量超过了屏幕/日志/yaml输出结果中显示的最大解码器句柄。
    • → 如果适用,则对应于 (C):最大播放次数
    • → 如果不适用,执行4。 4、错误对应的H.264视频的总面积(1*)超过了面积上限检查器测得的面积上限值(*2)。
    • → 如果适用,对应(D):分辨率区域上限
    • →如果不适用,则对应于(E):未知
备注
(*2):指面积上限估计成功时输出的以下值。
  • 在屏幕上
    • 当“显示详细信息”打开时,屏幕上显示“H.264 AREA LIMIT is Between XXX and YYY.”的 XXX ~ YYY 范围内的值。
  • 在日志/yaml上
    • 估计面积下限内的值 - 估计面积上限内的值
(*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) ×
备注
(*4):如果选择Prime,数据大小会增加,如果选择VP9,CPU负载会增加。
(*5):指我们的技术支持提供的以下特殊支持。
  • 我们将调查是否存在可以在应用程序操作环境中输出的H.264解码格式,如果存在,我们将考虑专门为该终端/操作系统创建和提供一个库。
  • 还可以联系设备制造商/Google 并搜索更新操作系统等解决方案。但请注意,如果您请求设备制造商/Google 合作,可能需要一段时间才能回复,而且问题也不一定能得到解决。