- 本节介绍 SDK 中包含的视频实用工具:H.264 区域限制检查器 (H264AreaLimitChecker.apk)。
- CRIWARE/SDK/VideoUtility/AreaLimitChecker/android/H264AreaLimitChecker.apk
摘要
- H.264 区域上限检查器是将根据 Android 设备而不同的 H.264 区域上限值 (*1) 以及有关设备特定 H.264视频播放的信息输出到屏幕、日志和存储的工具在设备中作为 yaml 文件。
通过使用此工具,您可以检查特定 Android 设备上可同时播放的 H.264视频的分辨率和数量。 (*2)
运行环境
- 该工具适用于运行 Android 7.0 或更高版本的设备。运行的Android ABI是arm7/arm8/x86/x86_64。
操作规范
- 启动H.264区域上限检查器时,将输出以下屏幕,屏幕底部的按钮具有以下含义。
“屏幕配置”
按钮 | 说明 |
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文件。
检查时播放的 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 命令在终端上安装 H264AreaLimitChecker.apk 并启动它。
首次启动时,会要求您授予访问本地存储的权限,如下所示,因此请设置为允许。
“文件访问权限设置屏幕(Android 11或更高版本)”
“文件访问权限设置屏幕(适用于 Android 11 及以下版本)”
开始检查
- 使用 TEX/BUFF 按钮选择要检查操作的 H.264 解码器操作模式后,按“START”按钮开始 H.264 区域上限检查。
开始后,当左上角的“正在检查...”文字变为“完成”时,检查完成。
检查检查结果
- 检查结果可以在屏幕上或在 log/yaml 文件中查看。
从屏幕检查
- 检查完成后,默认会显示如下输出画面。
在下面的输出屏幕示例中,该终端有 H.264 区域限制,最多可以同时播放 2 部 H.264视频(分辨率为 3840x2160)、8 部(分辨率为 1920x1080)和 16 部(分辨率为 1280x720/640x480/320x240)。
检查结果显示屏幕(简单)
- 如果按“详细信息”按钮或“状态”按钮,以下信息将添加到屏幕上。
补充的信息显示:
- H.264 区域限制存在于 17280000 和 17356800 之间
- 虽然我能够同时播放两部分辨率为 3840x2160 的 H.264视频/一部分辨率为 1280x720 的 H.264视频/一部分辨率为 320x240 的 H.264视频,但我只能播放一部同时播放分辨率为320x240的H.264视频,尝试播放时达到区域限制。
检查结果显示屏幕(详细信息)
从日志/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
关于检查结果展示界面输出的各项信息(详情)/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 |