03:00:00省 50%领取

实操配方

把有序 PNG 序列组装为审片视频

用明确的每秒两帧时间安排,把已有静帧组装为审片。本任务是图片序列正向编码,没有生成中间帧,也不是从视频反向抽帧。

附实际运行过的本地样例、脚本和回执;不代表已调用视频生成服务。

原创任务专用本地夹具示意图
原创三色 PNG 序列、实际审片 MP4 与有序帧示意图;仅本地编码,没有模型插帧或生成。

01准备环境与输入

  1. 准备 Node.js 与 FFmpeg,必要时设置 FFMPEG_BIN。输入为三张原创 160×90 PNG,分别是红、绿、蓝色区并带白色边缘标记。
  2. 查看 sequence.json:索引1至3分别绑定 frame-0001.png 至 frame-0003.png 和 SHA-256,输入帧率明确为两 FPS。
  3. 选用新输出目录,并要求输入文件名集合完全一致。图像看起来合理,但顺序错误,仍必须判定清单失败。

02执行配方

运行命令

node run-recipe.mjs --out ./my-run
  1. 固定图片序列身份

    脚本生成三张练习图与明确的有序清单,每行同时保存索引、准确 basename 和 SHA-256。不能用文件系统遍历顺序代替剪辑顺序。

  2. 编码前拒绝断号、多图和错字节

    分别实跑交换清单行、临时移除第二帧、增加第五帧及错误哈希。每例都应失败,finally 会恢复原始完整序列,然后才进入实际编码。

  3. 按声明输入帧率编码

    使用 -framerate 2 -start_number 1 与 frame-%04d.png,并明确最多输出三帧。实际 review.mp4 采用 yuv444p 且无音轨。每张 PNG 贡献一帧,目标时长为1.5秒。

  4. 验收帧数和色彩顺序

    完整解码 MP4,确认只有三帧 160×90 RGB。逐帧抽样中心色区,与预期红、绿、蓝比较,单通道容差四;本次最大差值为一,没有插帧。

03检查结果

  • 三行清单准确对应连续的 frame-0001.png 至 frame-0003.png。
  • 交换清单行会在编码前被拒绝。
  • 缺帧与额外的非连续编号帧分别被拒绝。
  • 错误的预期 PNG SHA-256 会被拒绝。
  • 审片文件实际解码为三帧 160×90,组装使用明确的两 FPS。
  • 中心色区按红、绿、蓝排列,各通道误差不超过四,九项检查通过。

04排错与交付

图片都对,但审片顺序错了。

只更正清单顺序与索引到文件名的绑定,重新预检后再编码。

编号序列缺图,编码提前停止。

恢复准确 basename 与哈希对应的原始 PNG,不默默复制相邻帧补位。

审片播放太快。

只修改声明的输入帧率并记录新预期时长,保留三份图像身份并重跑顺序检查。

把 sequence.json 与审片结果放在一起。本夹具证明选定顺序和帧数,不创造运动,也不额外延长帧停留或验收分发编码。

05下载脚本与样例