🎯 一句话总结:先把文章压成能说出口的口播稿,再生成最终音频;字幕和画面都跟着音频时间轴走,最后用 HyperFrames 或 Remotion 预览、修正并渲染。第一次只做 30~60 秒、单一主题的不出镜视频。

Codex 从文章到视频成片的工作流


📌 先跑通一条最短路径

用 Codex 做视频,不是输入一句话就稳定得到成片。Codex 更像制作协调者:它读取文章和 Skills,生成口播与分镜,调用语音和视频工具,再根据检查结果修改项目。

第一条视频只设这些边界:

项目建议
时长30~60 秒
画幅竖屏 9:16 或横屏 16:9,只选一种
内容一个问题、一个结论
人物不出镜或单一主角
音频一条旁白,不叠多人对话
画面4~8 个镜头
输出一个可播放的 final.mp4

完整流程是:

文章或主题
→ narration.md 口播稿
→ final.wav 最终配音
→ 字幕与时间轴
→ STORYBOARD.md 分镜
→ HyperFrames 项目
→ 预览和定点修改
→ final.mp4

先建立项目目录,把所有输入和输出放在一起:

codex-video/
├── article.md
├── narration.md
├── final.wav
├── subtitles.srt
├── STORYBOARD.md
├── assets/
└── renders/

文件名可以调整,但文章、音频、素材和版本不要散落在下载目录里。


准备 Codex、HyperFrames 和必要工具

HyperFrames 是开源的视频渲染框架,可将 HTML、CSS、媒体素材和可定位时间的动画渲染成 MP4。官方仓库提供面向编程 Agent 的 Skills,基础安装命令为:

npx skills add heygen-com/hyperframes

官方项目:https://github.com/heygen-com/hyperframes

开始前让 Codex 检查:

  1. Node.js 和 npm 是否可用;
  2. HyperFrames Skill 是否安装成功;
  3. FFmpeg 是否可执行;
  4. 项目目录是否可写;
  5. 是否能建立一个最小视频并打开预览。

可以这样交代:

阅读 HyperFrames 官方仓库和 Skill 说明,在当前项目安装所需依赖。
创建一个最小测试项目并打开本地预览。
只报告实际通过的检查、预览地址和项目路径;不要先制作正式视频。

/faceless-explainer 适合将文本整理为不出镜讲解视频;/hyperframes-animation 处理动画规则。社区仓库还提供 vox-explainer 拼贴讲解和 p5-paint-animation 绘制动画,但第一条视频无需全部安装。

社区 Skills:https://github.com/heygen-com/hyperframes-community-skills


✍️ 第一步:把文章改成口播稿

口播稿决定视频讲什么。先定稿内容,再碰动画,否则每改一句话,配音、字幕和镜头都要重做。

文章转口播稿的内容压缩流程

只有一个主题

先写清四个输入:

  • 讲给谁听;
  • 解决什么问题;
  • 视频多长;
  • 观众看完要做什么。

例如不要只写“介绍 HyperFrames”,改成:

面向第一次使用 Codex 的内容创作者,写一段 60 秒竖屏口播。
主题:如何把一篇 3000 字工具测评变成短视频。
保留一个完整流程和一个高频错误。
结尾让观众先做 30 秒测试版,不要加入营销口号。
输出到 narration.md。

已经有文章

将文章保存为 article.md,让 Codex 提炼而不是逐段朗读:

把 article.md 改写成 60 秒中文口播稿。
保留事实、数字、产品名和限制条件;删除重复背景和书面化过渡。
结构为:具体钩子 → 当前问题 → 三步方法 → 下一步动作。
每句话都要能自然说出口,输出 narration.md。

口播定稿后自己读一遍。检查专有名词、英文、数字、句长和停顿。嘴巴读不顺的句子,TTS 通常也不会自然。

通过标准

  • 前 3~5 秒已经出现问题或结果;
  • 全文只讲一个核心变化;
  • 每句话都有口语停顿位置;
  • 不依赖画面才能理解主要结论;
  • 朗读时长符合预设范围。

🔊 第二步:生成最终配音

第一次使用普通 TTS 就够了。先生成 10~15 秒测试音,确认声音、语速、停顿和英文读法,再生成全文。

开源方案可以使用 edge-tts,也可以选择手边已有的 TTS 服务。最终保存为统一格式,例如 final.wav。后续工具只需要可靠的音频文件,不关心它来自哪家服务。

需要复刻声音时再用 CosyVoice

CosyVoice 是开源的多语言语音生成项目,支持使用参考音频和对应文本进行零样本语音生成。官方仓库:

https://github.com/FunAudioLLM/CosyVoice

准备三份独立文件:

文件用途
reference.wav本人或已获授权的干净参考录音
reference.txt参考录音逐字对应的文本
narration.md本次要生成的新口播

参考录音和文本必须对应。背景音乐、回声、多人说话和重度降噪都会影响结果。只使用本人声音或明确获得授权的声音,不要复刻他人声音冒充本人。

长口播按语义分段生成。某段专有名词读错,只重做这一段,再拼接为 final.wav。不要因一个词出错重做整条音频。


⏱️ 第三步:以最终音频建立时间轴

从这一步开始,final.wav 是唯一时间尺。不要按口播字数平均分镜,也不要先做完整动画再塞声音。

让 Codex 转写最终音频,输出带时间戳的字幕:

转写 final.wav,生成 subtitles.srt。
逐句保留真实开始和结束时间,不按字数平均分配。
另外生成 timeline.json,记录每句话、开始时间、结束时间和关键词。
完成后检查字幕总时长不能超过音频时长。

配音、字幕与分镜共用时间轴

检查四件事:

  1. 句子有没有提前或滞后;
  2. 一屏字幕是否过长;
  3. 英文、数字和专有名词是否正确;
  4. 停顿处有没有被错误合并。

字幕只负责告诉观众“说了什么”,时间轴告诉画面“什么时候变化”。这两份数据都应来自最终音频,而不是初稿。


🎬 第四步:把口播拆成 4~8 个分镜

每个分镜只回答一个问题:观众听到这句话时,最需要看到什么?

优先使用文章已有的截图、照片、图表或产品界面。没有素材时,再用标题卡、步骤图、对比图和简单数据可视化。不要为每句话生成一张无关的装饰图。

让 Codex 输出制作单:

读取 narration.md、timeline.json 和 assets/。
把视频拆成 4~8 个分镜,写入 STORYBOARD.md。
每个镜头列出:开始时间、结束时间、对应旁白、主要画面、素材路径、字幕位置、唯一主要动画。
已有素材优先;缺少素材时只列出需要补的具体画面。

分镜通过标准:

  • 每个镜头都对应一段明确旁白;
  • 素材路径真实存在;
  • 画面主体不会被字幕遮挡;
  • 单张截图有足够停留时间;
  • 转场没有切断句子或关键动作;
  • 前一镜头结束状态与后一镜头开始状态能衔接。

video-shotcraft 提供适用于 Remotion 的镜头配方和动态预览,可以在产品演示或宣传片中作为镜头参考,但不是 HyperFrames 的必装依赖:https://github.com/Vincentwei1021/video-shotcraft


🖥️ 第五步:用 HyperFrames 预览并渲染

准备好口播、音频、时间轴和分镜后,再交给 HyperFrames:

使用 /hyperframes,根据 STORYBOARD.md 创建视频。
画幅 9:16,时长严格跟随 final.wav。
加载 assets/ 中的现有素材和 subtitles.srt。
每个镜头只保留一个主要动画,字幕处于安全区。
先生成项目并打开预览,不要直接渲染最终版。

先检查前 15 秒:

  • 钩子进入是否太慢;
  • 字幕能否在手机上看清;
  • 画面是否真的解释当前旁白;
  • 图片有没有被裁掉;
  • 转场是否抢过内容。

反馈必须指向时间和对象,例如:

第 6~9 秒截图停留太短,延长到 3 秒。
第 12 秒字幕挡住界面按钮,移动到顶部安全区。
第一个标题在旁白开始 1 秒后才出现,改为同步出现。
只修改这三项,其他时间和样式保持不变。

确认预览后再渲染:

把当前确认版本渲染为 renders/final.mp4。
渲染后检查文件可播放、音频未截断、分辨率和时长正确。
输出检查结果和文件路径。

HyperFrames 预览、定点修改与成片验收

看到预览页不等于完成。只有 final.mp4 实际生成,并从头到尾播放检查后,才能算跑通。


失败时只改一个变量

第一次出片常见问题不在模型能力,而在上游输入没有定稿。

现象先回退到哪里最小修复
字幕整体错位最终音频转写重新生成时间戳,不改画面样式
某句读音错误对应音频片段只重做该段并更新后续时间
截图看不清分镜制作单延长停留或放大目标区域
画面与旁白无关STORYBOARD.md替换该镜头素材,不重写全片
转场跳跃相邻镜头状态对齐主体位置、运动方向和结束状态
成片无法播放渲染与编码检查 FFmpeg、容器和编码参数

连续两次出现同一问题,就回到上游检查。不要在提示词末尾堆“更高级、更自然、更稳定”,这种说法无法定位错误。

每次修改保存一个版本,例如:

v01-script
v02-audio
v03-timeline
v04-storyboard
v05-preview
v06-final

版本名记录改变了什么,比“最终版2”“最终版真的最终”更容易复盘。


Remotion 和真人口播怎么接入

HyperFrames 适合让 Agent 按本期内容重新组织画面。Remotion 适合已经稳定的栏目模板:固定片头、字幕、标题区和素材槽位,每期替换数据即可。

Remotion 官方提供 Agent Skills:

  • /remotion-create:创建项目或 Composition;
  • /remotion-studio:打开预览;
  • /remotion-render:渲染视频或静帧。

官方说明:https://www.remotion.dev/docs/ai/skills

前面的 narration.mdfinal.wav、字幕、时间轴和素材可以继续使用,不必重做。建议先用 HyperFrames 连续完成两三期,确认镜头结构稳定后,再迁移成 Remotion 固定栏目。

如果已经拍了真人口播,可使用 video-use 先转写并整理有效片段,再补字幕和信息画面。该项目要求完整安装仓库及辅助脚本,FFmpeg 是底层依赖;默认转写路径还可能需要 ElevenLabs API Key:https://github.com/browser-use/video-use

真人视频的流程应是:

口播定稿
→ 分段拍摄
→ 整理有效片段
→ 对齐字幕
→ 补步骤卡和截图
→ 预览
→ 渲染成片

不要在未确认保留片段前就做复杂动效,否则真人剪辑一变,后面的时间轴又要重排。


✅ 第一条视频的完成标准

  • 口播稿已经本人朗读检查;
  • 最终音频已确定,后续时间轴不再引用旧版本;
  • 字幕来自最终音频,时间点能对上;
  • 分镜控制在 4~8 个,每个镜头都有明确作用;
  • 使用的素材全部存在,没有占位文件;
  • 前 15 秒已单独预览;
  • 每轮只修改一个主要问题;
  • final.mp4 已生成,能够正常播放;
  • 声音没有截断,字幕没有明显错位,主体没有被裁掉;
  • 项目、素材、提示词、版本和成片保存在同一个目录。

第一条跑通后,第二条继续复用目录和检查表。等同一结构稳定完成两三次,再固定片头、字幕和镜头模板。这样 Codex 才从一次性的视频生成助手,变成可重复使用的制作流程。