Communitygithub.com

发布日视频:配音卡点 Remotion 成片 + 多尺寸切版

用 Remotion 以代码规划并制作 30–75 秒的动态设计发布视频:需求提问、分镜、把产品截图重建为 React 组件、脚本与逐句 AI 配音、所有剪辑点对齐节拍的配乐、动态字幕排版、审片、渲染、封面图,以及 16:9、1:1、9:16 社交切版。

发布日视频:配音卡点 Remotion 成片 + 多尺寸切版 是什么?

「发布日视频」配方第 2 步(配音成片与全尺寸),来自 harish-anumula/launch-video-skill。适用于 Claude Code、Codex 以及任何能读 SKILL.md 并运行 shell 的智能体。它先问几个关键问题,提出叙事结构(问题到证明、冷开场、核心流程、前后对比、预告),用虚构数据截取界面,逐句录制带词级时间戳的配音并按转写匹配度选最佳一条(vo_lines.py、vo_pick.py),分析音乐并按节拍生成时间轴(music_qa.py、build_timing.py),最后渲染场景与切版。

兼容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add harish-anumula/launch-video-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

发布视频

你将端到端地导演和制作一条简短的发布视频:调研问题 → 故事板 → 产品截图 → 脚本与配音 → 音乐 → Remotion 场景 → 审阅 → 渲染 → 缩略图与裁切版。客户带来品味和产品知识;你带来流程和工艺。请提出下面列出的问题,其余所有决策由你自行做出,并说明你选择了什么。

这里的所有内容都是通用的。请带入产品自身的品牌、屏幕截图、API 密钥和音乐授权。

安装(适用于任意 Agent)

  • Claude Code: 将该文件夹复制到 ~/.claude/skills/launch-video/(个人)或 <repo>/.claude/skills/launch-video/(项目)。
  • Codex: 将其复制到 ~/.codex/skills/launch-video/,或从 AGENTS.md 中引用 SKILL.md。
  • 其他 Agent: 将其放在任何位置,并告知 Agent 首先读取 SKILL.md。路径、版本和 API 会随时间变化;如果某个命令或 API 形状已经更新,请查阅最新文档并调整,而不是停止。

该技能包含的内容

路径说明
references/storyboard-template.md故事结构、钩子类型、如何使用参考视频、节奏表和功能点-节拍配方
references/visual-catalog.md视觉构建模块、每种模块展示的内容,以及它们适合哪些产品/功能
references/motion-cheatsheet.md缓动、弹性、节奏、风格家族与类型、转场、摄像机在 UI 上的运动、纹理、光标
references/audio.md配音与音乐对比、TTS 和音乐 API 的形状、混音、响度
references/review-checklist.md每个场景、完整剪辑以及分享前需要检查的内容
references/gotchas.md失败模式及其修复方法
scripts/参考分析、声音排名、每行配音的词时间码、选段、音乐生成/质量检查/选项/拉伸、节拍对齐的时间线、联系表、最终交付
template/Remotion 启动模板:品牌令牌、时间轴辅助、动态标题、光标、颗粒、HUD、Logo 组合、通用 Hook/Reveal/Feature/Payoff/End/Thumbnail 场景,视觉库,目录预览,以及 video.config.tsx(代码中的故事板)

工具

  • Node 20+, ffmpeg, Python 3.11 via uv/uvx(脚本会声明自己的依赖)。
  • Remotion: npx create-video@latest --yes --blank --no-tailwind video。安装官方 Agent 技能(npx skills add remotion-dev/skills),并在编写场景前阅读 remotion-best-practices。
  • 可选:rubberband(干净的时间拉伸),demucs 和 Whisper via uvx(分析和 QA),一个 ElevenLabs(或其他 TTS/音乐)账户。
  • 许可证: Remotion 对个人和不超过 3 人的公司免费;大型公司需要 Remotion 公司许可证。请检查你的 TTS/音乐提供商的商业条款。第三方徽标是商标;仅在真实集成中出现时显示它们。

1. 调研问题(在规划前提出)

一次性提出这些问题(如果你的客户有问答工具,使用其问题/多选功能;否则使用简短编号列表)。为每个问题提供一个推荐的默认值,以便客户可以直接确认。

  1. 产品: 产品名称(准确显示);用一句话说明它是什么以及为谁服务。
  2. 受众与目标: 谁观看(客户、潜在客户、投资者、内部团队),以及他们应该在观看后做什么(注册、预约演示、试用某项功能)。
  3. 展示内容(按优先级): 最重要的 3–6 个功能或时刻。屏幕时间遵循此顺序。
  4. 时长与格式: 例如,16:9 的主片 45–75 秒;哪些裁切版(15–20 秒,1:1,9:16)以及将发布在何处。
  5. 声音: 配音 + 音乐(当产品需要解释时推荐),或仅音乐。声音偏好(性别、口音、能量)或“匹配此示例”。
  6. 故事与外观: 故事结构和钩子类型(参见 references/storyboard-template.md;推荐一种并说明理由),浅色或深色,风格家族(产品原生、编辑风格、展示片、趣味、电影风;references/motion-cheatsheet.md),以及他们喜欢的任何视频。品牌资产:Logo(SVG)、颜色、字体,或在哪里读取它们(产品的 CSS)。
  7. 屏幕截图: 你能用演示账户和虚构数据运行产品吗,还是他们会提供截图?任何不得出现的内容。
  8. 结束卡: CTA 文本和 URL;发布日期/“现在处于 Beta”字样。
  9. 密钥: TTS/音乐 API 密钥的位置(环境变量或一个 .gitignore 忽略的 .env 文件)。绝不要要求客户将密钥粘贴到聊天中。

如果他们已经回答了其中一些问题,不要重复询问。

2. 规划故事板

  • 从 references/storyboard-template.md 中选择一个故事结构和钩子类型(问题 → 产品 → 证明只是其中一种)。功能点遵循优先级顺序。
  • 如果客户分享了参考视频,借鉴他们的技巧(节奏、剪切、镜头、字体),但绝不要借鉴他们的台词、开场或序列;在录制前对照参考视频的文字记录检查脚本。
  • 每行配音对应一个场景,保持简短(≈2.5 词/秒;60 秒 ≈ 140 词)。每行配音应落在其场景的视觉时刻上。
  • 对于每个功能点,从 references/visual-catalog.md 中选择一个适合该产品的视觉元素(移动应用可能是 Phone → Steps → Notifications;开发者工具可能是 ComposerAnswer → BeforeAfter → Device)。连续功能点之间应变化运动方式。
  • 将故事板以简短的表格形式分享,并在构建前确认。

3. 捕获产品

  • 使用演示账户和虚构数据运行产品。绝不要显示真实的客户、同事、邮件或生产数据。
  • 捕获故事板中使用的每个屏幕的参考截图(Playwright,2x DPR),并记下确切的可见文本。将这些屏幕重建为简单的 React 组件,放在 Device/Phone/卡片内,以保持清晰并支持动画。当重建不值得时,可以直接将真实截图放入 Device/Phone。
  • 如果某个状态无法诚实达到,请对其进行风格化处理并说明。

4. 配音(如果选择)

  • 将台词放入 config/script.json。scripts/vo_lines.py 每行生成 3 个 take,附带词时间码;scripts/vo_pick.py 通过文字记录匹配(以及如果提供,与参考声音的相似度)选出最佳版本。
  • 每行单独生成,绝不要一次性生成整个脚本:一次性读取会将台词连在一起,导致无法在剪切点开始每行。
  • 使用库存/预制声音。要匹配示例中的声音,使用 scripts/voice_match.py 对库存声音进行排名;未经同意绝不要克隆真人。

5. 音乐

  • 生成 3–4 个纯音乐选项(scripts/music.py)或获得授权曲目。制作一个 A/B/C/D 摘录文件(scripts/music_options.sh),让客户通过聆听选择。
  • 测量选中的曲目(scripts/music_qa.py);生成的曲目很少遵循请求的节奏或段落,因此将剪辑按照检测到的节拍对齐(scripts/build_timing.py)。如果自然结束位置不合适,则进行少量时间拉伸(scripts/stretch_music.sh)。

6. 构建

  • 设置模板(template/README.md),设置品牌令牌、Logo 和 CTA,并将故事板写入 video.config.tsx。
  • 在配音存在之前,scripts/draft_timing.py 提供动画时间线,以便构建场景;之后,build_timing.py 用真实的词时间替换它。
  • 一次构建一个场景。每个场景完成后,以半尺寸渲染 6–10 张静态帧,并以联系表的形式查看(scripts/sheet.py)。
  • 渲染并发送 StyleTest 合成(钩子、揭示、第一个功能点)以供批准,然后再构建其余部分。

7. 审阅与迭代

  • 渲染完整剪辑,运行 scripts/finalize.sh(−14 LUFS,封面艺术,1-fps 联系表,最终混音的文字记录),并逐条检查 references/review-checklist.md。
  • 对于每一轮修改意见,只更改被要求的内容,重新渲染,并准确说明从上一版本更改了什么。提交每个版本。
  • 你无法实时观看:说明你执行了哪些检查(静态帧、文字记录、响度),并要求客户在分享前观看一次。

8. 交付

  • 主片:1920×1080,30 fps(密集 UI 动效用 60 fps),H.264 CRF 16–18,AAC 256k,−14 LUFS,−1 dBTP。
  • 缩略图:Thumbnail 合成,在约 360px 宽度下可读;它同时也是视频的第 0 帧(许多应用预览第一帧)和 MP4 封面艺术。导出 PNG 和 1280×720 JPG,用于支持自定义缩略图的平台。
  • 按需裁切版:15–20 秒的钩子剪辑,1:1 和 9:16(标题堆叠在 UI 上方),静音网站循环,以及根据配音词时间码生成的 SRT 字幕。

解释型与社交媒体视频

相同的流程也适用于为 LinkedIn 和 X 制作简短的解释视频(如博客文章、论文、功能或想法)。需要改变的是:

  • 事实来源于源文件,并完整阅读。 来自网页抓取工具的摘要可能会捏造或合并数字。在编写脚本前,根据原始文本制作一份事实核对清单。
  • 脚本面向非专业人士。 每个屏幕一个想法,最多约 10 个大词,为核心概念使用一个日常类比(例如,将评估变成“模拟考试与实际考试的比较”),不要使用术语或模型名称,最多两个取整的数字,最后以观众可以采取的行动结束。“准确但太技术性”是最常见的初次反馈。
  • 节奏: 每个屏幕的内容在大约一秒内落地(快速入场,在节拍上快速约 0.12 秒剪辑),然后停留 4–5 秒供阅读。在模板中,将场景包裹在 SpeedCtx.Provider value={1.6} 中,以加快创作的入口而不重新计时。
  • 格式: LinkedIn/X 信息流使用 4:5(1080×1350),30–50 秒,仅音乐。屏幕上的文字就是字幕(大多数信息流视频在静音状态下观看)。第 0 帧是一个完成的封面。
  • 外观: 匹配客户现有的视觉标识(如他们的轮播图、网站),而不是产品模板。
  • 音乐: 对于社交媒体,节奏强劲、以鼓声为主的产品广告曲目(清晰的底鼓、军鼓、拍手、深沉的贝斯,从第一拍开始)通常比平滑的氛围音乐效果更好。生成 3 个选项,让客户通过聆听选择;相同节奏的曲目可以共享一个节拍网格。
  • 与帖子一同交付: 帖子文案、链接放置、标签、替代文本、封面,以及基于客户自身受众分析(关注者所在位置、他们的网络何时活跃)确定的发布时间。

规则

  • 屏幕上只使用虚构数据;除非获得同意,否则不使用真人。
  • 不要声称产品不具备的数字或能力。确认任何“数百…”或统计数据的真实性和批准情况。
  • 编写原创文案。不要重复使用其他视频的钩子、口号或标语,也不要默认在不同视频之间使用相同的公式。
  • 保持在品牌调色板内;突然偏离调色板的场景会被视为故障。
  • 保持音乐在收尾台词下方(轻微下降,绝不要接近静音)。
  • 对第三方徽标使用官方标志,绝不要使用近似标识。

相关技能