Remotion SRT 动画工作流은(는) 무엇을 하나요?
将一份 SRT 字幕(口播稿)制作为 Remotion 渲染的 2D 动画成片。本流程在一个包含 81 句 / 193 秒 / 35 幕的真实项目中全程验证(含 12 轮渲染、11 处被验算关卡拦截的真实 Bug)。
何时使用
- 用户提供一份 SRT / 字幕 / 口播文案,需要制作「配画面的解说视频」
- 已有 Remotion 工程需续做或修改新幕
- 评审他人 Remotion 工程的成片质量
核心原则(不遵守必翻车)
- 证据边界:不编造已执行的操作。结论分为「已验证事实 / 设计建议 / 未验证事项」三档。
- 门禁不跳过:每个阶段末尾设有 G 门,未经用户确认不得推进。用户回复「继续」= 授权通过当前门。
- 一次做完:用户明确要求连贯交付时("你不能一次性做完吗"),将剩余幕一次铺完,验算门自动把关,不要拆成多轮等待确认。
- 帧确定性:时间轴只以帧为单位。禁止使用 CSS animation/transition/@keyframes/Tailwind animate-*、禁止 setTimeout 驱动时间轴;Random 必须固定种子。
- 文字间距按行盒计算:中文字体(Noto Serif SC 等)行盒 ≈1.44em,视觉上不叠的字实际量出来可能叠。文字块间距保留 ≥0.3em 余量,竖排字距 ≥1.55em。
- 画面文字零标点:SRT 中的标点在渲染层替换为空格,不要求修改源文件。
流程总览
| 阶段 | 产出 | 门禁 |
|---|---|---|
| S0 | 可行性评估(分级 / 技术路径 / 风险表 / Brief 缺口),不写代码、不下素材 | G0 用户定路径 |
| S1 | 工程初始化:npm 安装 Remotion 全家桶、字体放入 public/fonts/、tsconfig、Root | — |
| S2 | brief.md + beat-sheet.md(句→幕,帧界从 SRT 推导)+ style-guide.md + 3 张真实渲染的 styleframe | G1 视觉方向 |
| S3 | assets.md 素材规划(图元清单 + 参数 + 风险;优先 100% 程序化 SVG,零外购) | G2 合并确认 |
| S4 | storyboard.md 逐幕分镜(帧界 / 主视觉 / 主运动 / 转场理由 / 静音验收锚点) | G3 合并确认 |
| S5 | 垂直切片:选择数据密度最高的 3–4 幕进行真实渲染 + 抽帧 QA | G4 样片 |
| S6 | 全片铺幕(可一次铺完),每幕通过验算门 | — |
| S7 | 整片渲染 + 五级验证 + 交付 | G5 QA → G6 |
状态文件一律存入磁盘(brief / beat-sheet / style-guide / assets / storyboard / progress / findings),长任务以文件作为事实来源。
详细手册(按需阅读)
references/workflow.md— 每阶段的操作细节、数字复算方法、文献校验标准references/qa-gates.md— 重叠验算门原理、blackframe、接触印相、抽帧命令、渲染范围规则references/remotion-rules.md— Remotion 硬性规范及本项目实测踩坑清单(幕间空隙黑帧、字体加载、绝对定位等)assets/OverlapAudit.tsx— 逐帧文字重叠验算层,可直接复制进项目,挂载到主 Composition 顶层
新工程 10 分钟起步
npm i remotion @remotion/cli @remotion/bundler react react-dom typescript(+@remotion/renderer)- 中文字体:
cp /c/Windows/Fonts/NotoSerifSC-VF.ttf public/fonts/(可变字体单文件覆盖所有字重,SIL OFL 可商用),使用staticFile()+FontFace+delayRender/continueRender本地加载,禁止在线 Google Fonts - 复制
assets/OverlapAudit.tsx到src/audit/,挂载主 Composition 顶层 - 按 S2 阶段创建 beat-sheet,帧界写入唯一事实来源
src/acts/acts.ts
渲染命令(本机已验证)
npx remotion render src/index.ts Main out.mp4 --codec h264 --crf 18 --frames=START-END --log=error
npx remotion still src/index.ts Main out.png --frame=N # 单帧验证
npx remotion browser ensure # 首次下载 Headless Shell
渲染速度参考:1080p 复杂动效 ≈17–27fps(5810 帧全片约 3–6 分钟)。