复制一段视频
结果是一个可编辑的项目,其渲染结果在时间、构图、类型、调色板和运动方面与参考视频相匹配,同时生成一份关于哪些部分是精确的、哪些是近似的报告。辅助 CLI 工具 replicate-video 负责测量和检查;您负责观察和构建。
测量,绝不估算。 从联系表猜测的时间线在 15 秒的视频中会偏差一秒。构建中的每一个时间都来自测量帧。帧是证据;数字指示了在哪里查看。
1. 设置
运行 replicate-video doctor。当 ffmpeg、ffprobe 和 cv2 都显示 ok 时完成。确保 FFmpeg 在 PATH 环境变量中,以便后续所有命令使用:渲染和检查工具也需要 ffprobe。如果命令缺失,请安装它(uv tool install git+https://github.com/usemosio/replicate 或 pipx install git+https://github.com/usemosio/replicate)以及 FFmpeg。链接是一个页面,而不是文件:请先下载它(使用 yt-dlp,或请对方提供文件),并且只保留对方有权使用的内容(参见 references/rights.md)。
2. 测量
replicate-video analyze <video> -o .replicate/<name> # 当语音重要时添加 --transcribe
当 .replicate/<name>/facts.json 和 SUMMARY.md 存在时完成。每个输出的含义及其可能的误导方式:请参见 references/measure.md。
3. 阅读证据
打开 contact.jpg,然后打开 SUMMARY.md,再打开它提到的每一张图片:
- 每个 边界条带(
strips/):确认或拒绝每个cut(剪辑点)、candidate(候选)和flash(闪光)。快速移动可能掩盖一个剪辑点;闪白或快速推镜看起来类似剪辑点; - 每个 镜头的帧(
frames/),对照表格中的摄像机运动; - 字幕表(
captions.jpg,每个字幕截图及其时间):记下每组的确切文字; - 对于每个入场、出场和转场,观察连续帧:
replicate-video strip <video> --range a,b [--roi x,y,w,h]。
当每个边界通过肉眼分类、每个字幕组标记了文字、表格中的每个运动被确认或修正时完成。
4. 决定保真度
| 对方要求 | 保留 | 替换 |
|---|---|---|
| “复制 / 制作相同的视频” | 节拍、时间、剪辑、构图、调色板、运动、声音;只有当视频是对方自己或持有版权时保留角色和标志 | 任何不属于对方的内容:用相同的绘图系统重绘角色;去掉创作者昵称和水印 |
| “类似这样,用于我的品牌 / 更改 X” | 节拍结构、节奏、运动语法、构图、调色板角色 | 他们提到的内容;参考视频中的文字、标志、人物和地点 |
| “这种风格,可复用” | — | 移交给 style-writer 技能 |
当要求不明确时,用这三个选项询问一次。
5. 编写节拍图
在任何代码之前编写 BEATS.md。对于每个节拍:起始帧和结束帧、填充画面的内容、屏幕上确实的文字、调色板、类型、摄像机运动(幅度、缓动、起始和结束)、元素的入场方式、运动机制(什么变成什么)以及退场方式。当参考视频的每一帧都属于某个节拍时完成。
6. 构建
- 画布大小和帧率与参考视频一致;时长为帧数 ÷ fps。时间写为 帧数 ÷ fps,向下取整(例如,30 fps 下的第 83 帧是
2.766666)。 - 一个配置文件包含时钟(场景、提示)以及任何人可能替换的内容(剪辑、颜色、字体、图片路径);场景文件从该配置读取,这样即使工具要求每个场景一个文件,后续更改也只需编辑一处。
- 每个场景保持部分运动写作成时间的函数,使得拉伸的场景不会冻结。
- 根据 references/match.md 中的规则匹配每个图层:根据墨迹匹配文字类型,根据像素匹配字幕、光、火、粒子、角色、运动模糊。
- HyperFrames:请参见 references/hyperframes.md。其他工具:请参见 references/other-engines.md。声音:请参见 references/sound.md。
独立工作:一个持有整部影片的智能体比多个各自重新观看的智能体更有效。
当 BEATS.md 中的每个节拍都已构建、项目以参考视频的尺寸、帧率和时长渲染,并且项目中不包含参考像素(参见 rights)时完成。
7. 最后检查一次
replicate-video diff <reference> <render> -o .replicate/diff
打开 worst.jpg 和 shots.jpg(左侧为参考视频,右侧为渲染结果)。按以下顺序肉眼判断:节拍时间、构图、调色板、类型、运动。分数仅指示首先查看哪里;它无法识别错误的文字,并且会惩罚那些虽被要求但已经做出的更改。修复最大的真实差异,重新渲染并再次执行 diff,然后停止。当 diff 列表中没有缺失的剪辑点、时长差为 0 并且已经完成一轮修复时完成。较小的分数差异不值得再执行另一轮。
8. 报告
在项目中编写 REPLICATE.md:哪些部分完全重建、哪些部分是近似的及其原因(替换的字体、简化的绘图)、被要求更改的内容,以及最后一次 diff 的数字。