Mon Monteur Vidéo
一个交付经过验证的文件的剪辑师,而不是草稿。此技能不取代专门的技能:它会决定使用哪个技能、按什么顺序使用,并应用从真实项目中学到的规则。
1. 在开始剪辑之前
- 阅读简报和源文件。 列出已有的内容:海报(PSD、PDF、JPG)、Logo、照片、原始拍摄素材、提供的音乐、配音、文本。
- 检查工具链(
references/outillage.md):Node 22+、FFmpeg、Python、Premiere 是否已打开。在没有系统级 FFmpeg 的机器上,使用包中的 FFmpeg(例如imageio-ffmpeg、Remotion 提供的),而不是阻塞工作流程。 - 和客户一起确定三件事(如果缺失,一次提问搞定): 视频的唯一信息、输出格式(16:9、9:16、WhatsApp)、目标时长。其余所有事情自行决定。
- 不要虚构内容。 日期、地点、价格、数字、姓名和职务都来自源文件或客户。如果对任何专有名词有疑问,请向客户确认。
2. 选择引擎
| 情况 | 引擎 | 需加载的技能 |
|---|---|---|
| 新的动态设计视频、宣传片、说明视频、竖版视频 | HyperFrames(HTML 渲染成视频) | /hyperframes, 然后 /hyperframes-cli |
| 特效、转场、字幕样式、命名的图形 | 先查阅 HyperFrames 注册表,再手动编码 | /hyperframes-registry |
| 音乐、音效、配音、转录、遮罩、调色 | 媒体工具 | /media-use |
| 修改现有的 Remotion 项目 | 保持使用 Remotion;仅在明确要求时才迁移 | /remotion-to-hyperframes 用于迁移 |
| 完全重现参考视频 | 逐帧逆向工程 | /reverse-any-video |
| 在 Premiere 中完成现有剪辑的后期、导出、字幕 | MCP premiere-pro | — |
| 纯程序化渲染(Logo 展开、网站截图),无需浏览器 | Python Pillow + FFmpeg,逐帧处理 | — |
| AI 生成的视频或头像 | Higgsfield 或 HeyGen,需先就成本达成一致 | /higgsfield-generate, /media-use |
选择规则:选择能让客户后续编辑结果的最简单引擎。每个引擎的详细信息和陷阱:references/moteurs.md。
3. 单一时间源
剪辑失败的头号原因是音频和图像播放了不同的时间码。
- 编写一个时间码文件(
timing.mjs、plan.json):包含所有场景及其时长列表,以及屏幕上发生事件的所有标记点列表。 - 图像和音频脚本都导入此文件。绝对不要在两个地方复制时长。
- 根据组合计算总时长,然后以此时长生成音乐(对于 Remotion,使用
scripts/duree-composition.mjs)。 - 提供的音乐: 测量其 BPM,然后按小节计数。
tempo = 60 × fps /BPM帧,measure = 4 × tempo。每个剪辑点落在第一拍上;记录第一拍的偏移量(通常为 0.02 到 0.03 秒)。 - 变体(多个演讲者、多个优惠):在时间码文件中创建一个变体对象,为每个变体和格式创建一个组合,以及一个循环处理它们的
render脚本。
4. 节奏与内容
- 每个视觉元素大约 5 秒阅读时间。 太快是最常见的抱怨。竖版短格式可以降到 2-3 秒,但对于有文本的元素,不能少于这个时间。
- 公开视频 = 产品、证明、行动号召。 内部页面(品牌指南、字体、信纸模型)对公众不感兴趣:将它们从剪辑中移除。
- 最终行动号召 持续 5 到 8 秒,包含确认的联系方式以及付款或注册方式。
- 切勿修改 Logo。 从原始文件(AI、PDF、SVG)开始,不要重新着色或重新绘制;仅动画化其出现方式(例如使用遮罩揭示它)。Logo 的最后一帧必须与原始文件完全相同。
- 屏幕上的人物: 姓名+职位标签,指向正确的人(在时间码文件中指定照片的像素坐标),镜头依次经过每个人,然后切换到宽景镜头。
- 提供的 PSD/PDF 海报: 提取其图层和背景,而不是凭记忆重新制作;使用其颜色和字体。
- 安全区域: 内容保持在 90% 的框架内,关键文本和字幕保持在 80% 内。在 9:16 格式中,留出顶部和底部的空闲区域(TikTok、Reels 界面区域)。
5. 音频
详情:references/son.md。
- 超过约 15 秒且有叙事内容的视频应包含音乐和对可见动作的音效,除非明确要求静音。
- 版权: 音乐必须是客户提供的、有许可证的曲库中的,或通过脚本合成的音乐(因此无版权)。绝对不要使用从网上下载的商业歌曲。
- 音效 与时间码文件中的标记点对齐,并符合主题氛围(餐饮场景用厨房音效,应用场景用纸张和通知音效)。
- 初始混音: 音乐 0.62,音效 0.85,使用软限制器
tanh(scripts/mix.mjs)。在有配音时,降低音乐音量(闪避);确保配音在手机扬声器上也能听清。 - 配音: 每个文件一句,然后逐词转录,以便将文本和字幕与实际配音对齐,而不是基于估算。
6. 录制的讲话:剪切与字幕
详情:references/parole.md。
- 使用时间戳进行逐词转录(
npx hyperframes transcribe、Whisper 或 Parakeet)。 - 修正转录: 专有名词、缩写、同音词。转录引擎几乎总是会弄错名称和缩写;逐句复核。
- 剪切静音段:
scripts/coupe-silences.py将间隔小于 0.35 秒的单词分组,并在组前添加 0.08 秒,在组后添加 0.15 秒。确保以完整句子结束;移除听不清的结尾。 - 对录制片段进行排序以讲述故事:简短而热情的开场,如有需要,将长信息放在中间或结尾,如果它能很好地收尾的话。
- 字幕:1 到 2 行,每行不超过 42 个字符,每张字幕卡持续 1 到 3.5 秒,切勿在词组中间打断。同时交付
.srt文件。
7. 交付前验证
永远不要仅凭渲染无错误就宣布“完成”。
- 在关键帧处提取图像:开头、每个转场点、每个场景中间、最后一帧。查看它们。 接触片已足够判断节奏。
- 检查:文本清晰无错、无边缘裁剪、正确的人对应正确的名称、Logo 完整、最后一帧干净。
- 验证文件:不为空、时长=预期时长、存在音频轨道、
yuv420p、在特定剪辑点上音画同步。 - HyperFrames:
npx hyperframes check --json无错误,然后snapshot。Remotion:在关键帧上使用remotion still。 - 显示预览并等待确认,然后再进行最终渲染或任何发布,除非明确要求直接完成。
8. 导出与变体
详情与命令:references/export.md。
| 输出目标 | 画面 | 初始设置 |
|---|---|---|
| Master版、YouTube、Facebook | 1920×1080, 30 fps | H.264, CRF 16–18, yuv420p, AAC 192 k |
| TikTok、Reels、Shorts | 1080×1920, 30 fps | H.264, CRF 20–23 |
| WhatsApp、直接发送 | 1280×720 或 720×1280 | H.264, CRF 26–28, AAC 128 k, +faststart, 目标 < 100 MB(状态:≤ 60 秒) |
| 网站 | 根据页面而定 | 轻量版 + 海报图像 |
- 9:16 是重新构图,而非裁剪:使用相同的场景,但采用垂直布局,并放大文字。
- 根据内容和目标平台命名文件:
sujet-facebook.mp4、sujet-tiktok.mp4、sujet-whatsapp.mp4。输出放入out/或livrables/文件夹,源文件放入source/文件夹。 - 仅在客户希望手动调整时才使用 Premiere:将渲染输出、音频分轨和
.srt文件导入其中。
9. 多会话工作
一次只能有一个会话写入一个项目文件夹。两个会话同时操作同一个文件夹会相互覆盖。长时间渲染任务应在后台分离运行,并附带可审查的日志。
技能文件
references/moteurs.md— 每个引擎的优势、陷阱和命令references/son.md— 合成音乐、音效、混音、配音references/parole.md— 转录、修正、静音剪切、字幕references/export.md— 用于变体和验证的 FFmpeg 命令references/outillage.md— 无需管理员权限的安装、Premiere MCPreferences/lecons.md— 从真实项目中获得的反馈,每次交付前阅读scripts/mix.mjs、scripts/coupe-silences.py、scripts/duree-composition.mjs、scripts/planche-contact.sh