Contact Sheet 视频概览拼图设计器
它解决什么问题
你有一个 2 小时的电影或讲座视频,想快速看一遍内容但不想从头看到尾。一个办法是把视频按时间均匀抽帧,打成一张网格预览图——就像 DVD 背面的章节截图缩略图,但可以是自定义行数和列数的。
这就是 Contact Sheet(视频概览拼图)要做的事。
基本工作流
- 加视频文件 → 选"Contact Sheet"作为输出目标;
- 在设计器里配置行列数(1–10)、画布/单元尺寸、间距、背景色;
- 可选加水印、时间戳角标、参数信息头;
- 选输出格式:JPG 或 PNG;
- 开始 → 输出一张拼好的大图。
设计器能配什么
| 参数 | 可选值 | 默认 | 说明 |
|---|---|---|---|
| 行数 | 1–10 | 3 | 最终网格的行数 |
| 列数 | 1–10 | 4 | 最终网格的列数 |
| 画布模式 | Canvas 宽高 / Cell 宽高 | Cell 宽高 | 按总画布还是按每个单元的尺寸设计 |
| 宽高比模式 | 按原视频宽高比 / 固定 cell 高度 | 按原比 | 保持视频的宽高比不会变形 |
| 间距 | 0–200 px | 8 | 每个单元之间的间距 |
| 边距 | 0–200 px | 8 | 整张图的外围边距 |
| 对齐 | left/center/right (行) / top/center/bottom (列) | center | 单元在网格格子内的对齐 |
| 裁剪模式 | crop / contain / stretch | contain | contain 保持比例,stretch 会压扁,crop 裁掉多余 |
| 背景色 | 透明 / 黑 / 白 / 自定义 | 透明 | 透明只有 PNG 保留,JPG 自动变白色 |
| 时间戳 | 开关 | 开 | 每个单元角标显示该帧在视频中的时间 |
| 参数信息头 | 高度 0–200 px | 40 | 顶部显示文件名、分辨率、时长等元数据 |
| 水印 | 文字 + 位置 | 无 | 可选加自定义文字水印 |
抽帧策略
抽帧是均匀分布的:把视频总时长(或裁剪后的时长)除以行数×列数,每隔 N 秒取一帧。比如 2 小时视频、3×4 = 12 帧,每隔约 10 分钟抽一帧。
如果开了裁剪范围(见裁剪页面),抽帧范围会在裁剪范围内均匀分布。
自动安全上限
FFmpeg 在输出前会做三重限制,防止生成超大的 Contact Sheet 导致内存爆炸:
| 限制项 | 上限 | 说明 |
|---|---|---|
| 最大帧数 | 100 | 行数×列数超过 100 时自动截到 100 |
| 单维度最大像素 | 8192 px | 超过自动 scale |
| 总像素数 | 约 32 MP | 根据设备内存动态计算(32 MP / GiB RAM,最低 64 MP,最高 512 MP) |
这和图片超分的像素预算策略是一致的——ZenConverter 所有大图输出都有基于设备 RAM 的安全机制。
已知限制
- 时间戳精度:基于关键帧抽帧,不是逐帧精准,时间戳可能略有误差;
- 透明背景只在 PNG 保留:JPG 不支持透明,选透明背景会被白底填充;
- 不保留视频音轨信息:Contact Sheet 是纯图片,源视频的音频轨/字幕轨信息不出现在输出里;
- 4K 长视频处理慢:从 4K 视频抽 100 帧 + scale 到画布尺寸,解码和编码会花一些时间。
使用场景
- 快速浏览长视频内容:2 小时讲座 → 3×5 网格 = 15 帧,每帧约 8 分钟,可以一眼看完整片内容;
- 视频质量初筛:对比多个视频的抽帧画面,挑出画质最好的那个;
- PPT/报告配图:从技术讲座视频里抽几个关键帧做报告配图;
- 作为视频元数据预览嵌入文件:很多视频管理软件会自动生成类似的 Contact Sheet 作为缩略图。
相关页面
- 可视化裁剪与多段分割 —— Contact Sheet 也可以在裁剪范围内抽帧
- 视频格式互转原理 —— FFmpeg 是底层引擎
