CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
H.264 区域上限检查器
本节介绍 SDK 中包含的视频实用工具:H.264 区域限制检查器 (H264Are​​aLimitChecker.apk)。
  • CRIWARE/SDK/VideoUtility/AreaLimitChecker/android/H264AreaLimitChecker.apk

摘要

H.264 区域上限检查器是将根据 Android 设备而不同的 H.264 区域上限值 (*1) 以及有关设备特定 H.264视频播放的信息输出到屏幕、日志和存储的工具在设备中作为 yaml 文件。
通过使用此工具,您可以检查特定 Android 设备上可同时播放的 H.264视频的分辨率和数量。 (*2)
备注
(*1): 详情请参阅关于 H.264视频播放失败的情况 中的 (D): 分辨率区域上限
(*2):请注意,该工具仅检查播放本身是否可行,无法确认是否可以稳定播放而不卡顿。

运行环境

该工具适用于运行 Android 7.0 或更高版本的设备。运行的Android ABI是arm7/arm8/x86/x86_64。

操作规范

启动H.264区域上限检查器时,将输出以下屏幕,屏幕底部的按钮具有以下含义。
android_h264_area_limit_checker_cap_screen_button.png
“屏幕配置”
按钮 说明
TEX/BUFF H.264 解码器操作模式:在纹理输出和缓冲区输出之间切换。 (*四)
START 开始 H.264 区域上限检查。
STOP 停止 H.264 区域上限检查处理。
QUIT 退出应用程序。
DETAIL 打开/关闭 H.264 区域上限检查结果详细信息的屏幕显示。
STATUS 打开/关闭 H.264 区域限制下Player状态的屏幕显示。


当您按下开始按钮时,以下五种分辨率的 H.264视频将按分辨率降序逐一播放,直至达到最大同时播放数 (*3)。
当达到最大同时播放数 (*3) 或由于 H.264 区域限制而发生错误 (*1) 时,该设备上的 H.264视频区域限制的估计值和相关信息会显示在屏幕、日志、本地存储,输出到yaml文件。
备注
(*3):指设备支持的H.264解码器的最大同时实例数,或者Android版本的Sofdec设置的16个同时H.264解码器的上限。
(*4):目前, Sofdec SDK 的原生 Android 版本并未对外提供缓冲输出模式,该功能仅在CRIWARE Unity Plug-in for Smartphone 中使用。
检查时播放的 H.264视频
播放优先级分辨率总帧数fps
1 3840x2160 1 29.97
2 1920x1080
3 1280x720
4 640x480
5 320x240
注意
  • 根据终端的不同,在输出结果之前,应用程序可能会因内存不足等原因崩溃。例如,在以下终端上,工具在输出结果之前由于内存不足而崩溃。
    • Google Pixel 3 (Android 12)
  • 如果工具在输出结果之前崩溃,请检查在崩溃之前您播放的 H.264视频的分辨率 x 数量,并将该数量用作区域限制的指导。

如何检查

实际设备安装/首次启动时文件访问权限设置

首先,使用 adb install 命令在终端上安装 H264Are​​aLimitChecker.apk 并启动它。
首次启动时,会要求您授予访问本地存储的权限,如下所示,因此请设置为允许。
android_h264_area_limit_checker_file_access_over11.png
“文件访问权限设置屏幕(Android 11或更高版本)”
android_h264_area_limit_checker_file_access_under11.png
“文件访问权限设置屏幕(适用于 Android 11 及以下版本)”

开始检查

使用 TEX/BUFF 按钮选择要检查操作的 H.264 解码器操作模式后,按“START”按钮开始 H.264 区域上限检查。
开始后,当左上角的“正在检查...”文字变为“完成”时,检查完成。

检查检查结果

检查结果可以在屏幕上或在 log/yaml 文件中查看。

从屏幕检查

检查完成后,默认会显示如下输出画面。
在下面的输出屏幕示例中,该终端有 H.264 区域限制,最多可以同时播放 2 部 H.264视频(分辨率为 3840x2160)、8 部(分辨率为 1920x1080)和 16 部(分辨率为 1280x720/640x480/320x240)。
android_h264_area_limit_checker_cap_limit_result_simple.jpg
检查结果显示屏幕(简单)
如果按“详细信息”按钮或“状态”按钮,以下信息将添加到屏幕上。
补充的信息显示:
  • H.264 区域限制存在于 17280000 和 17356800 之间
  • 虽然我能够同时播放两部分辨率为 3840x2160 的 H.264视频/一部分辨率为 1280x720 的 H.264视频/一部分辨率为 320x240 的 H.264视频,但我只能播放一部同时播放分辨率为320x240的H.264视频,尝试播放时达到区域限制。
android_h264_area_limit_checker_cap_limit_result_detail.jpg
检查结果显示屏幕(详细信息)

从日志/yaml 文件检查

日志中输出如下输出结果。
========== H.264 AREA LIMIT CHECKER RESULT ==========
H.264 AREA LIMIT is between 17280000 and 17356800.
- [device-specific information] -
- checker version: 1.0
device name: SC-02J
model number: SC-02J
OS: 28
decoder info: OMX.qcom.video.decoder.avc
output mode: texture
output format: 2141391878
is area limit reached: yes
estimated lower area limit:
- value: 17280000
number of 3840x2160: 2
number of 1920x1080: 0
number of 1280x720: 0
number of 640x480: 2
number of 320x240: 1
estimated upper area limit:
- value: 17356800
number of 3840x2160: 2
number of 1920x1080: 0
number of 1280x720: 0
number of 640x480: 2
number of 320x240: 2
max decoder handle: 16
max width : 4096
max height: 4096
min width : 64
min height: 64
max framerate: 240
min framerate: 1
=====================================================
output result to /sdcard/cri/crimana/output/h264_area_limit_checker_result_SC-02J_os28_texture_v1_0.yaml


另外,日志输出内容中
- [device-specific information] -
来自
=====================================================
期间,也会以yaml文件的形式输出到终端中的以下目录中。 (*5)
使用 Android Studio 的设备资源管理器或“adb pull /sdcard/cri/crimana/output”命令获取并检查 yaml 文件。
  • /sdcard/cri/crimana/输出/
    • h264_area_limit_checker_result_(型号)_(操作系统版本)_(输出格式)_(工具版本).yaml
    • (示例)Pixel 5 (Android 14),用于纹理输出
      • h264_area_limit_checker_result_Pixel_5_os34_texture_v1_0.yaml
备注
(*5):根据终端的不同,文件输出可能会失败。如果失败,屏幕上将输出“(无法将结果输出到本地文件)”文本,并且以下文本将输出到日志中。
Failed to output H.264 area limit checker result to local file.

关于检查结果展示界面输出的各项信息(详情)/log/yaml

输出到检查结果显示屏幕(详细信息)的每一项、部分日志以及yaml 文件的含义如下。
H.264区域上限检查结果日志/yaml内容说明
项目描述
检查器版本H.264区域限制检查器版本
设备名称设备产品名称
型号设备型号
操作系统设备操作系统版本(API 级别)
解码器信息H.264解码器名称
输出模式H.264解码器输出格式(纹理/缓冲区)
输出格式H.264解码器输出颜色格式
是否达到区域限制是否达到区域限制(是/否)
预计面积下限预计面积下限
3840x2160 的数量向下估计期间播放的 3840x2160 H.264视频的数量
1920x1080的数量向下估计期间播放的1920x1080 H.264视频的数量
1280x720 的数量向下估计期间播放的 1280x720 H.264视频的数量
640x480的数量向下估计期间播放的640x480 H.264视频的数量
320x240的数量向下估计期间播放的320x240 H.264视频的数量
估计面积上限估计面积上限
3840x2160的数量向上估计期间播放的3840x2160 H.264视频的数量
1920x1080的数量向上估计期间播放的1920x1080 H.264视频的数量
1280x720 的数量向上估计期间播放的 1280x720 H.264视频的数量
640x480的数量向上估计期间播放的640x480 H.264视频的数量
320x240的数量向上估计期间播放的320x240 H.264视频的数量
最大解码器句柄设备支持的 H.264 解码器同时实例的最大数量
最大width设备支持的最大分辨率宽度
最大height设备支持的最大分辨率高度
最小width设备支持的最小分辨率宽度
最小height设备支持的最小分辨率高度
最大帧速率设备支持的分辨率的最大 fps
最小帧速率设备支持的分辨率的最小 fps