高级影片
通过代码制作遵循品牌指南的影片,只呈现经过核查的事实,并且看起来和听起来都像专业制作的水准。下文中的“委托人”指的是你为其制作影片的人,通常会转达客户反馈。示例来自真实客户影片(案例研究)。
标准是“高级、精致……像素完美”。以下是被委托人判定为不合格的内容:“那些药片看起来很廉价”、“有点基础……只是照着脚本走”、“过渡太奇怪”、“太快了我看不清”、“掉落得很奇怪”、“声音听起来有点年轻”、“图片看起来太假”、“静音后突然爆发有点过头”。
规则
- 正确信息高于一切。 每个事实、名称、头衔、数字、日期、引用、标志和发音在出现在画面或旁白之前,都必须与一手来源进行核对,并在任何内容变更时再次核对。绝不编造或猜测;当来源缺失时,请核实或询问。官方头衔需逐字复制,标志仅来自委托人自己的文件,真实组织使用其真实照片(完整头部,无光晕,无生成的面孔)。产品演示仅使用明确虚构的数据(不解析的域名、文档 IP、虚构名称)。一个错误的主张会毁掉影片中的所有其他内容。
- 每个组件都达到高级标准。 字体、卡片、图标、UI、图表、过渡、光照、声音、音乐和音效都为该影片单独设计,达到高标准——没有库存、模板或“足够好”的素材。将每个想法构建为大型、专门设计的动态作品,并留白;真实的屏幕截图和屏幕录制即使有摄像机移动也显得“廉价”。没有药片标签、编号芯片、跟踪全大写标签或点连接元数据。生成的图像仅用作底板或素材,并在 100% 视图下检查。
- 深度、光照、移动的摄像机——以及完整的画面。 平面布局(文本居左,卡片居右,纯色背景)显得“平淡”。关键时刻需要配置好的场景:反射的地板、3D 旋转的物体、移动的光线、空气中的灰尘、从未完全静止的摄像机。每一帧都应该像海报一样:层次深度、光源、主体充满画面(文本在手机上可读),绝不能是黑暗虚空中的小元素。简报中的要点只是最低要求,而非设计上限。
- 每个过渡都是一次真实的移动。 摄像机移动、光线变化或一个元素从一个场景移动到下一个场景。绝不要使用平面白色闪光或弹出效果;重击需要几帧的起势。
- 可读且节奏平稳。 标题停留 ≥ 2 秒,结果在其行后停留 ≥ 3 秒;列表一次显示一个项目;各章节之间能量保持均衡。绝不为了达到时长而塞入内容。
- 旁白是神圣的。 绝不进行时间拉伸或压缩其停顿:而是删减词语并重新录制。句子之间要有呼吸,章节转折处稍长一点。每个章节以一句与前一章节相连的句子开头。整部影片及每个补丁中,每种语言使用同一种声音和同一个模型;让委托人通过试听来选择。
- 音乐要落地并进行承接。 结局恰好落在视觉高潮上,并且音乐在下一句台词下方继续;它绝不能随着画面达到顶峰而空下来,绝不能硬切切换乐曲,并在结尾处保持克制。
- 像编辑一样核实。 你无法观看或收听影片,所以要用感官来代替:每种语言每个场景的联系表、每个过渡的帧条、每个文本时刻的全尺寸静帧、自动故障和音频扫描、每句台词的响度测 量,以及 AI 审阅(在操作前需在帧上确认其主张)。未经此方式检查的剪辑不能算完成。
- 掌控循环,简单汇报。 决定合理的默认值并说明你的决定;仅询问真正超出你控制范围的事情(缺少的照片、密钥、资金)。汇报时不带文件或代码名称:更改了什么、检查了什么、未检查什么、文件在哪里、应该发送哪一个。
完整品味指南及其每条规则的理由见 quality-bar.md。开始设计前请阅读。
你需要制作的内容
首先选择影片类型;它决定了结构(详细信息和时间安排见 case-studies.md):
| 类型 | 典型时长 | 旁白 | 图片 |
|---|---|---|---|
| 产品展示 | 60–100 秒,每种语言一个剪辑 | 通常无;屏幕上的文字行,可选字幕 | 产品核心概念的自定义设计动态作品;仅使用虚构数据 |
| 品牌/组织影片 | 2–4 分钟,一个主语言 + 其他剪辑 | 一位旁白 | 组织的真实照片、人物和事件 + 动态设计;每个声明经过事实核查 |
| 活动/会议开场 | 1.5–3 分钟,客户的脚本 | 深沉而有力 | 电影级 3D 场景、深度重建照片、官方名称和标志、以活动标题收尾的高潮 |
| 预告片/短宣传片 | 15–45 秒 | 每个节拍一句短台词,或无 | 三个节拍中的单一想法:钩子、转折(关键时刻)、名称 |
每种类型的机制都是相同的:Remotion (React) 以 1080p60 渲染画面;一个时间线文件驱动画面、旁白、音乐和字幕;Docker 中的 Python 制作旁白、配乐、音效和混音;测量和 AI 审阅检查结果;一个发布脚本分块渲染并打包交付物。
开始:找出可用的服务
在新项目中运行 tools/setup.sh。它最后会运行 tools/providers.py,该脚本检查 .env 中的密钥(绝不打印它们),询问每个服务今天提供什么,并为每项工作选择最佳服务:使用最新的 Gemini Flash 审阅画面和声音,用于试镜的声音(ElevenLabs 和 Gemini TTS),以及用于底板的 GPT Image。首选 OpenRouter(一个密钥,多个模型,可见花费上限);仅凭免费的 Gemini API 密钥仍可覆盖旁白和审阅;没有密钥,影片仍可获得设计好的字体、创作的配乐、所有检查和发布。如果缺少某个密钥会影响质量,请向用户询问一次——措辞、回退方案和资金规则见 providers.md。相信工具当前的选择,而不是本文档中的任何模型名称。
工作流程
制作新影片时按顺序完成各阶段;修订时,跳转到反馈涉及的阶段,然后再次运行审阅和发布。将此清单复制到你的笔记中并逐项勾选:
影片进度:
- [ ] 0 设置:工具可用,密钥已检查,预算已同意
- [ ] 1 接收:引用简报,品牌文件,交付物已确定,机器已检查
- [ ] 2 事实:事实表,每个声明都有来源和状态,避免列表
- [ ] 3 脚本:语言已确定,时间线中的旁白,每种语言中的每个屏幕文字
- [ ] 4 分镜:每个章节一个创意,规划了交接,展示了一个外观样本
- [ ] 5 构建:根据提示创建场景,检查每种语言的静帧
- [ ] 6 旁白:试听并锁定声音,每句台词剪切 OK,已清理,已测量
- [ ] 7 声音:配乐,音效,混音(每句台词人声 ≥ 6 dB 高于音乐)
- [ ] 8 审阅:表格,条带,扫描,AI 审阅;每个发现已修复或解释;事实已重新核查
- [ ] 9 发布:输出已验证,zip 已测试,交付状态已提交,告知委托人文件位置和发送内容
1. 接收
- 阅读委托人发送的所有内容(简报、脚本、报告 PDF、聊天截图、之前的影片)。将他们的原话引用到
docs/brief.md中,并附上轮次日志;注意强制性措辞和官方名称。 - 从源头收集品牌真实信息:官方标志文件,来自网站 CSS 或品牌 PDF 的色板,覆盖影片所有语言的字体(重音、变音符号、其他文字),每种语言的产品名称和 UI 措辞。
- 提前确定语言和交付物(每种语言的主版本、带字幕的剪辑、.srt、缩略图、zip);如果委托人已有之前轮次的包,请完全镜像。
- 检查机器:可用磁盘,Docker 正在运行,同一部影片上的其他渲染或会话(两个智能体在同一影片上会相互覆盖工作;如果发现这种情况,请停止并询问谁拥有它)。
2. 研究与事实
- 阅读真实来源:
tools/webpage.sh <url> <name>在真实浏览器中渲染页面并保存其文本和截图;当网站宕机时,按照 story-and-research.md 中的回退列表操作(存档副本、其他公开来源,然后是委托人),而不是猜测。 - 使用 story-and-research.md 中的简报运行一个研究子智能体:每个事实都带有注明日期的来源和状态(已核实 / 单来源 / 自我报告 / 未核实 / 委托人陈述),以及一个避免列表。产品影片:阅读真实产品的代码和措辞,以便屏幕上的每个标签、数字和流程在产品中都存在。
- 编写
docs/factsheet.md。除非有状态,否则任何内容都不能出现在屏幕上或旁白中;自我报告的数据需要注明出处。
3. 故事与脚本
- 为影片类型选择结构,然后将旁白写成一个连贯的讲述:每个章节转折处有连接句,列表融入句子,数字按口语书写。每种语言用母语写作,而不是作为翻译;绝不要让声音说出它不说的语言中的名字——显示名称,按角色介绍人物。
- 将台词放入
src/film/timeline.ts,字幕断点用“ | ”标记(以及当一行作为设计字体在影片中显示时设置onScreen: true,以便其字幕让位),并将每种语言的每个屏幕文字放入src/film/script.ts(其LANGS列表设置影片的语言;第一个是主语言)。
4. 外观与分镜
- 每个章节一个创意,每个创意都有自己的视觉概念、关键时刻以及进出方式,并向相邻章节传递某些内容。将其写入
docs/storyboard.md。 - 决定在哪些地方使用真正的 3D、深度重建照片或生成的底板是值得的(remotion-craft.md)。在构建整套内容之前,为任何会改变外观的内容展示一个代表性静帧或剪辑。
5. 构建
- 启动项目:
<skill>/scripts/new_film.sh <dir> <Film-Name>(该名称将成为交付文件的名称),然后运行tools/setup.sh。启动项目是一个可运行的影片——时间线、场景时钟、字幕、完成、玻璃和字体工具包、绽放效果、镜面地板、灰尘、光照、深度照片、三个示例场景、音频引擎和以下所有工具。替换示例场景;保留架构。 - 先处理时间线:场景、命名的提示点和旁白槽位位于
src/film/timeline.ts中;场景根据提示进行动画(cuesOf(scene, lang));npm run cues将相同的数字传递给音频。仅在那里更改时间。 - 对于长影片,使用 remotion-craft.md 中的简报模式将场景分配给并行的构建子智能体;你保持导演身份,并在帧上验证每个报告。
6. 旁白
完整方法见 narration.md。编写旁白简介和导演笔记;在 audio/vo/say.json 中重新拼写声音念错的内容;从 tools/providers.py 找到的声音中进行试听,并让委托人选择;在单个请求中录制每批声音(tools/vo_prompt.py → tools/tts.py),剪切并逐词检查每句台词(tools/cut_lines.py),清理并调整电平,并测量补丁听起来是否仍像同一旁白(tools/voice_score.py)。在 README 中锁定确切的声音、模型和提示。
7. 音乐、音效、混音
完整方法见 music-and-sound.md。默认情况下,通过代码创作一首免许可的配乐,在画面的提示时刻变化;仅在委托人提供时,在其节拍网格上剪辑一首许可的曲目。音效设计对应命名的提示点。混音在每句台词时压低音乐,掌握到 −14 LUFS 并为 AAC 编码留出余量,并打印人声与音乐对比表。
8. 审阅(每轮,在展示任何内容之前)
完整清单见 review-and-qa.md:每种语言的预览图和联系表,每个过渡的条带,每个文本和字幕时刻的全尺寸静帧,每次渲染上的 tools/qa_scan.py,每次混音和交付文件上的 tools/audio_qa.py,以及 tools/review.py(最新的 Gemini Flash 观看和收听小型全片副本)。仅对你能确认的具体标记采取行动;其 A/B 偏好、声音身份和小文本判断不可靠。对照事实表重新核对屏幕上的每个事实。
9. 发布与交付
tools/release.sh(release-and-delivery.md)构建所有内容:旁白检查、每种语言的配乐和混音、字幕、缩略图、主版本和带字幕的剪辑分块渲染、拼接、峰值检查、帧计数、压缩。REDO= 仅重新渲染修改过的块;LANGS=、VOICE= 用于子集和声音版本;ZIP_ONLY=1 重新打包。验证输出,提交交付状态,更新 README,并确切告知委托人包的位置以及是否可以安全发送。
10. 反馈轮次
working-with-owner.md:将聊天截图和任务中的消息视为本轮的简报;首先事实核查新声明;在整部影片中修复模式,而不仅仅是显示的帧;保留委托人未批评的内容;重新运行审阅和发布;逐点回答。将每个持久的偏好保存在下一个会话能找到的地方。
入门项目中的工具
运行它们;仅当某个工具失败时才阅读其代码(每个工具的第一行说明其用途和调用方式)。Python 工具在由 tools/setup.sh 构建的 Docker 镜像中运行(film-audio 和 film-asr;setup.sh all 添加 film-voice 和 film-depth):docker run --rm -v "$PWD":/p -w /p <image> python <tool> …。Node、zsh 和 Swift 工具在主机上运行。
| 需求 | 工具(从项目根目录运行) | 运行环境 |
|---|---|---|
| 设置、检查密钥和模型 | tools/setup.sh [all], tools/providers.py | 主机 / film-audio |
| 读取网站(文本 + 截图) | tools/webpage.sh <url> <name>, tools/webpage.sh archive:<domain> <name>, tools/webpage.sh ddg:<query> | 主机 |
| 浏览网站 | tools/webpage.sh interactive-session | 主机 |
| 编写旁白提示 | tools/vo_prompt.py | film-audio |
| 文字转语音 | tools/tts.py | film-voice(如果已构建)或 film-audio(仅限 Gemini TTS) |
| 测量人声相似度 | tools/voice_score.py | film-audio |
| 剪切旁白台词 | tools/cut_lines.py | film-audio |
| 人声降噪 | tools/voice_clean.py | film-audio |
| 作曲(AI 音频生成) | tools/compose.py | film-audio |
| 音频质量扫描 | tools/audio_qa.py | film-audio |
| 视频质量扫描 | tools/qa_scan.py | 主机 |
| AI 审阅 | tools/review.py | 主机(Gemini API 密钥) |
| 发布 | tools/release.sh | 主机 |
所有工具都需要项目根目录下的 .env 文件,其中包含 API 密钥。tools/setup.sh 会创建一个模板,并验证你的设置。