Chrome视频渲染(CVR)
面向Android/proot的浏览器及渲染适配器,用于Remotion和HyperFrames。合成内容与音频时间线仍由视频项目拥有。
启动模式
| 模式 | 用途 | 启动行为 |
|---|---|---|
cvr | 默认、日常渲染 | 首次运行测量短/长渲染计划(持续时间随候选数量按比例增加,会事先告知);后续运行读取计划文件并立即启动;无额外的npm/浏览器版本探测;输出简洁的一行结果 |
rvc | 诊断、发布检查 | 每次运行重新测量两种计划并覆盖共享计划文件(历史保留);完整的环境报告、硬件预算详情、逐段验证及可选的同步检查;分阶段的时间摘要 |
两种模式均为前台运行。独立任务串行执行;单个任务内的并行度受测量计划的限制。
# 轻量模式
python3 /skills/chrome-video-render/scripts/remotion-segmented.py --project . --composition Hello --output out.mp4 --mode quick
# 详细模式
python3 /skills/chrome-video-render/scripts/remotion-segmented.py --project . --composition Hello --output out.mp4 --mode full --sync-check
渲染计划
工作进程数通过测量而非推断得出。首次使用时,在每个候选工作进程数下对两个固定的探测合成进行多次渲染,取中位数决定每个候选的得分;优胜者分别记录为短(≤300帧)和长视频,存储在<project>/node_modules/.cache/cvr-render-plan.json中。后续的cvr运行读取匹配的计划并立即开始渲染。rvc每次运行重新测量,覆盖计划文件,并使用新数值进行渲染;每次写入都会附加到history列表中。
不提供默认的工作进程数,因为优胜者取决于具体设备。首次运行会在开始前打印其操作内容,因为每次探测每个候选、每轮、每个长度类都需要一次渲染。传递--workers N可完全绕过探测。
浏览器环境
source /skills/chrome-video-render/scripts/video-browser-env.sh
cvr使用此安装中的启动器。rvc额外运行render-env.sh --json以获取浏览器、引擎和硬件报告。对于/skills之外的检出目录,请使用该检出目录的scripts/目录。
Remotion
python3 /skills/chrome-video-render/scripts/remotion-segmented.py \
--project /path/to/project --entry src/index.ts \
--composition Hello --output /path/to/output.mp4 \
--input-props '{"title":"Example"}'
使用目标项目的Remotion包以及官方的selectComposition()、renderMedia()和combineChunks() API。支持小数FPS和JSON属性。生成PCM分段并最终进行一次AAC交付编码。
当省略--segment-frames时,分段大小会根据合成长度自适应:最长300帧时90帧一段,最长900帧时150帧一段,最长3000帧时300帧一段,超出则450帧一段。这样长视频可以避免被拆分成数十个需要重新启动浏览器的分段。传递--segment-frames可固定分段大小。
HyperFrames
在项目审核与批准后:
python3 /skills/chrome-video-render/scripts/hyperframes-render.py \
--project /path/to/project --output /path/to/output.mp4 \
--quality looks --workers 2 # 示例值;按项目选择
保留HyperFrames原生时间线、混音器和工作进程系统。后端适配器通过函数签名选择,而非生成的构建文件名。
--mode quick使用已安装的无头壳启动器;--mode full运行render-env.sh并根据硬件预算确定工作进程数。底层hyperframes render调用在两种模式下相同,明确传递--workers也会被尊重。HyperFrames不使用测量的渲染计划。
验证
cvr:基本的解码帧、FPS、尺寸和音频属性检查;除非请求校准检查,否则同步状态保持为not-measured。rvc:单遍完整解码、逐段详情、硬件预算、基于标记的同步检查以及分阶段的时间摘要。check-av-sync.py需要一个包含已知PCM脉冲和视觉闪烁的校准合成。selftest-av-sync.py验证对齐信号和人为延迟信号。webgl-policy-check.py是可选的审核工具,并非常规渲染步骤。
验证范围
在Android/proot aarch64平台上,使用Remotion 4.0.538和HyperFrames 0.8.198进行了验证:包括小数FPS、有音频和无音频合成、参数转发和同步检测。列出版本号是为了让读者了解尝试过的版本,而非作为支持版本的声明。
首次运行需要为每个候选、每轮、每个长度类进行一次探测渲染,因此其持续时间随候选数量和视频长度按比例增加;这是每个设备的一次性成本,后续运行会读取已记录的计划。rvc每次运行都会重新测量。自适应分段在解码帧总数相同的情况下,减少长视频的分段数量。任何运行产生的数据仅描述产生该数据的机器,并不保证其他设备的结果。