12c - 端到端工作流
概述
Remotion + AI Agent 的核心价值在于一条完整的管线:从自然语言描述出发,经 Claude Code + Remotion Skills 翻译为 React/TypeScript 视频代码,在 Remotion Studio 中实时预览和迭代,最终渲染为可分发的 MP4 文件。本节将逐步拆解这条管线的每一个环节,配以流程图和操作说明,帮你建立从 prompt 到成品视频的完整心智模型。
1. 工作流全景:五阶段管线
整个端到端工作流可以分为五个阶段,每个阶段有明确的输入、处理和输出。
工具推荐
| 工具 | 用途 | 价格 | 适用场景 |
|---|---|---|---|
| Claude Code | 自然语言→视频代码的 AI 引擎 | Pro $20/月;Max 5× $100/月;Max 20× $200/月 | 全流程 AI 驱动核心 |
| Remotion Agent Skills | 教 AI 写正确 Remotion 代码的知识层 | 免费(开源) | 提升 AI 生成代码质量 |
| Remotion Studio | 本地实时预览和调试 | 包含在 Remotion 中(免费) | 预览和迭代阶段 |
| Remotion CLI | 命令行渲染工具 | 个人及 ≤3 人公司免费;企业需 Company License | 本地渲染输出 |
| Remotion Lambda | AWS Lambda 分布式云渲染 | 框架免费(需付 AWS 费用,约 $0.01-0.05/视频) | 批量渲染、生产部署 |
| Remotion Cloud Run | GCP Cloud Run 云渲染 | 框架免费(需付 GCP 费用) | GCP 生态用户 |
| Remotion Player | Web 嵌入式播放组件 | 包含在 Remotion 中(免费) | 在 Web 应用中嵌入预览 |
| FFmpeg | 视频后处理和格式转换 | 免费(开源) | 格式转换、压缩、拼接 |
操作步骤
步骤 1:理解五阶段管线全景
┌─────────────────────────────────────────────────────────────────────────┐
│ Remotion + AI Agent 端到端工作流 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────┐ ┌───────────────┐ ┌──────────────┐ │
│ │ 阶段 1 │ │ 阶段 2 │ │ 阶段 3 │ │
│ │ Prompt │───→│ AI 代码生成 │───→│ 预览与迭代 │ │
│ │ 需求描述 │ │ Claude Code │ │ Studio │ │
│ └───────────┘ └───────────────┘ └──────┬───────┘ │
│ │ │
│ ↓ │
│ ┌───────────────┐ ┌──────────────┐ │
│ │ 阶段 5 │ │ 阶段 4 │ │
│ │ 分发与集成 │←───│ 渲染输出 │ │
│ │ CDN/邮件/API │ │ CLI/Lambda │ │
│ └───────────────┘ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘五阶段概览:
| 阶段 | 输入 | 处理 | 输出 | 耗时 |
|---|---|---|---|---|
| 1. Prompt 需求描述 | 自然语言文字 | 人工构思和编写 prompt | 结构化视频需求 | 2-10 分钟 |
| 2. AI 代码生成 | Prompt + Skills 上下文 | Claude Code 生成 React/TS 代码 | 视频组件源码 | 1-5 分钟 |
| 3. 预览与迭代 | 视频组件源码 | Studio 实时渲染 + 自然语言修改 | 满意的视频效果 | 5-20 分钟 |
| 4. 渲染输出 | 最终视频代码 | CLI/Lambda 渲染 | MP4/WebM 文件 | 10 秒-5 分钟 |
| 5. 分发与集成 | 视频文件 | 上传/嵌入/自动化 | 用户可见的视频 | 视场景而定 |
步骤 2:理解数据流向
从 prompt 到最终视频,数据经历以下变换:
自然语言 prompt
│
▼
┌──────────────────────────────────┐
│ Claude Code + Remotion Skills │
│ ┌────────────────────────────┐ │
│ │ 1. 解析需求(场景、时长、 │ │
│ │ 分辨率、动画风格) │ │
│ │ 2. 加载 Skills 知识 │ │
│ │ (API 模式、最佳实践) │ │
│ │ 3. 生成 React 组件代码 │ │
│ │ 4. 注册 Composition │ │
│ └────────────────────────────┘ │
└──────────────┬───────────────────┘
│
▼
React/TypeScript 源码
(.tsx 组件文件)
│
▼
┌──────────────────────────────────┐
│ Remotion 渲染引擎 │
│ ┌────────────────────────────┐ │
│ │ 对每一帧(frame 0..N): │ │
│ │ 1. 调用 React 组件 │ │
│ │ 2. 传入当前帧号 │ │
│ │ 3. 渲染为 HTML/CSS │ │
│ │ 4. Chrome Headless 截图 │ │
│ │ 5. 编码为视频帧 │ │
│ └────────────────────────────┘ │
└──────────────┬───────────────────┘
│
▼
MP4 / WebM 视频文件核心洞察: 整条管线的本质是”自然语言 → 代码 → 像素”的两次翻译。第一次翻译由 AI 完成(语言→代码),第二次翻译由 Remotion 渲染引擎完成(代码→像素)。Skills 的作用是确保第一次翻译的准确性。
2. 阶段 1:Prompt 需求描述
好的 prompt 是整条管线的起点。描述越精确,AI 生成的代码越接近预期,迭代次数越少。
操作步骤
步骤 1:确定视频的基本参数
在写 prompt 之前,先明确以下基本参数:
| 参数 | 常见选项 | 说明 |
|---|---|---|
| 分辨率 | 1920×1080(横屏)、1080×1920(竖屏)、1080×1080(方形) | 根据分发平台选择 |
| 帧率 | 30fps(标准)、60fps(流畅动画) | 30fps 适合大多数场景 |
| 时长 | 5-60 秒 | 短视频平台建议 15-30 秒 |
| 风格 | 暗色/亮色、极简/丰富、企业/创意 | 影响配色和动画风格 |
步骤 2:使用结构化 prompt 模板
一个高质量的视频 prompt 应包含以下要素:
请帮我创建一个 Remotion 视频组件:
【基本参数】
- 分辨率:1080x1920(竖屏,适合抖音/YouTube Shorts)
- 时长:15 秒
- 帧率:30fps
【内容结构】
- 场景 1(0-3 秒):标题 "[标题文字]" 从底部弹入,带 spring 动画
- 场景 2(3-10 秒):依次展示 5 个要点,每个要点淡入停留后淡出
- 场景 3(10-15 秒):结尾 CTA 文字 + Logo
【视觉风格】
- 背景:深色渐变(#0a0a0a → #1a1a2e)
- 主色调:#6366f1(靛蓝色)
- 字体:大标题 72px 粗体,正文 36px 常规
- 动画风格:流畅弹性(使用 spring 而非线性 interpolate)
【数据驱动】
- 要点内容从 props 传入,方便批量生成不同版本
- 导出 Props 类型接口
【输出要求】
- 创建组件文件并注册到 Root.tsx
- 使用 Sequence 组织时间线
- 使用 AbsoluteFill 做全屏布局步骤 3:Prompt 编写的关键原则
| 原则 | 说明 | 示例 |
|---|---|---|
| 指定时间线 | 明确每个场景的起止时间 | ”场景 1(0-3 秒)” 而非 “先显示标题” |
| 指定动画类型 | 说明用 spring 还是 interpolate | ”使用 spring 弹性动画” |
| 指定颜色值 | 给出具体色值而非模糊描述 | ”#6366f1” 而非 “蓝色” |
| 指定参数化需求 | 说明哪些内容需要动态替换 | ”标题从 props 传入” |
| 指定 Remotion API | 提及具体 API 名称 | ”使用 Sequence 和 AbsoluteFill” |
提示词模板
你是一个 Remotion 视频开发专家。我需要创建一个 [类型] 视频。
【视频概述】
[用 2-3 句话描述视频的整体内容和目的]
【基本参数】
- 分辨率:[宽]x[高]
- 时长:[秒数] 秒
- 帧率:[30/60] fps
【场景分解】
- 场景 1([起始秒]-[结束秒] 秒):[描述内容和动画]
- 场景 2([起始秒]-[结束秒] 秒):[描述内容和动画]
- ...
【视觉规范】
- 背景:[颜色/渐变]
- 主色调:[色值]
- 字体大小:[标题/正文]
- 动画风格:[弹性/线性/缓动]
【参数化需求】
- [列出需要从 props 动态传入的内容]
请生成完整的组件代码并注册到 Root.tsx。3. 阶段 2:AI 代码生成
这是管线的核心环节——Claude Code 读取你的 prompt,结合 Remotion Skills 的知识,生成可运行的 React/TypeScript 视频代码。
工具推荐
| 工具 | 用途 | 价格 | 适用场景 |
|---|---|---|---|
| Claude Code + Remotion Skills | 自然语言→Remotion 代码 | Claude 订阅费 + Skills 免费 | 最佳 Remotion 代码生成方案 |
| Cursor + Remotion 文档 | IDE 内 AI 辅助编写 | Cursor Pro $20/月 | 偏好 IDE 内交互 |
| Remotion AI SaaS 模板 | 浏览器内 prompt→预览 | 免费(开源模板) | 构建面向用户的 SaaS 产品 |
| ChatGPT / Gemini + 手动粘贴 | 通用 LLM 生成代码 | 各模型订阅费 | 无 Claude Code 时的替代方案 |
操作步骤
步骤 1:启动 Claude Code 并输入 prompt
在 Remotion 项目根目录启动 Claude Code:
cd my-video-project
claude将阶段 1 中编写的 prompt 粘贴到 Claude Code 中。Claude 会:
- 解析需求:理解视频的场景结构、时间线、视觉风格
- 加载 Skills:自动读取
.claude/skills/remotion-best-practices/中的知识 - 规划组件结构:决定需要创建哪些文件和组件
- 生成代码:输出完整的 React/TypeScript 代码
步骤 2:理解 AI 生成的代码结构
Claude Code 通常会生成以下文件结构:
src/
├── Root.tsx # 更新:注册新的 Composition
├── MyVideo/
│ ├── index.tsx # 主视频组件(组合所有场景)
│ ├── TitleScene.tsx # 场景 1:标题动画
│ ├── ContentScene.tsx # 场景 2:内容展示
│ ├── OutroScene.tsx # 场景 3:结尾 CTA
│ └── types.ts # Props 类型定义典型的主组件结构:
// src/MyVideo/index.tsx
import { AbsoluteFill, Sequence } from "remotion";
import { TitleScene } from "./TitleScene";
import { ContentScene } from "./ContentScene";
import { OutroScene } from "./OutroScene";
import { MyVideoProps } from "./types";
export const MyVideo: React.FC<MyVideoProps> = (props) => {
return (
<AbsoluteFill style={{ backgroundColor: "#0a0a0a" }}>
{/* 场景 1:标题(第 0-90 帧,即 0-3 秒 @30fps) */}
<Sequence from={0} durationInFrames={90}>
<TitleScene title={props.title} />
</Sequence>
{/* 场景 2:内容(第 90-300 帧,即 3-10 秒) */}
<Sequence from={90} durationInFrames={210}>
<ContentScene items={props.items} />
</Sequence>
{/* 场景 3:结尾(第 300-450 帧,即 10-15 秒) */}
<Sequence from={300} durationInFrames={150}>
<OutroScene cta={props.cta} />
</Sequence>
</AbsoluteFill>
);
};步骤 3:理解 Skills 如何影响代码质量
Remotion Skills 确保 AI 生成的代码遵循 Remotion 的最佳实践:
| 方面 | 无 Skills(通用 React 模式) | 有 Skills(Remotion 模式) |
|---|---|---|
| 动画驱动 | useState + CSS transition | useCurrentFrame() + interpolate() |
| 时间控制 | setTimeout / useEffect | Sequence + 帧号计算 |
| 弹性动画 | CSS ease-in-out | spring() 物理弹簧 |
| 布局 | div + flexbox | AbsoluteFill + 绝对定位 |
| 音频同步 | <audio> 标签 | <Audio> 组件 + useCurrentFrame() |
| 视频嵌入 | <video> 标签 | <OffthreadVideo> 组件 |
关键区别: 没有 Skills 时,AI 会用 Web 开发的思维写代码——这些代码在浏览器中可能看起来正常,但在 Remotion 渲染时会失败(因为渲染是逐帧截图,不是实时播放)。Skills 让 AI 理解”每一帧都是独立渲染的静态画面”这一核心概念。
步骤 4:处理 AI 生成代码中的常见问题
AI 生成的代码并非总是完美的。以下是常见问题和处理方式:
| 问题 | 症状 | 解决方法 |
|---|---|---|
| 帧数计算错误 | 动画时长与预期不符 | 提醒 AI:“30fps 下 3 秒 = 90 帧,请重新计算” |
缺少 extrapolateRight: "clamp" | 动画结束后值继续变化 | 要求 AI 在所有 interpolate() 中添加 clamp |
| 使用了 CSS 动画 | 渲染时动画不生效 | 要求 AI 改用 useCurrentFrame() + interpolate() |
| 组件未注册 | Studio 中看不到新视频 | 要求 AI 在 Root.tsx 中添加 <Composition> |
| TypeScript 类型错误 | 编译失败 | 要求 AI 修复类型定义 |
提示词模板
我在 Remotion Studio 中预览时发现以下问题:
[描述具体问题,如"第二个场景的文字没有动画效果"]
请检查代码并修复。注意:
- 必须使用 useCurrentFrame() 驱动动画,不能用 CSS transition
- 所有 interpolate() 必须设置 extrapolateRight: "clamp"
- 确保帧数计算正确(当前 fps 是 30)4. 阶段 3:预览与迭代
这是工作流中最具交互性的阶段——在 Remotion Studio 中实时预览效果,通过自然语言与 AI 对话进行迭代修改,直到满意为止。
操作步骤
步骤 1:启动 Studio 预览
# 在项目根目录启动
npm run dev
# 或
npx remotion studio浏览器自动打开 http://localhost:3000,在侧边栏选择 AI 生成的 Composition。
步骤 2:使用 Studio 检查视频效果
Studio 提供以下检查能力:
┌─────────────────────────────────────────────────────────────┐
│ Remotion Studio 界面 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────┐ ┌──────────────────┐ │
│ │ │ │ Composition 列表 │ │
│ │ 预览画布 │ │ ├─ MyVideo │ │
│ │ (当前帧的渲染结果) │ │ ├─ TitleScene │ │
│ │ │ │ └─ ContentScene │ │
│ │ │ │ │ │
│ │ │ │ Props 编辑器 │ │
│ │ │ │ title: [____] │ │
│ │ │ │ items: [____] │ │
│ └─────────────────────────────────┘ └──────────────────┘ │
│ │
│ ◀◀ ◀ ▶ ▶▶ ⏹ 帧: 045 / 450 时间: 01.5s / 15.0s │
│ ├────────────●──────────────────────────────────────────┤ │
│ 时间线拖动条 │
│ │
│ 快捷键:J(快退) K(暂停) L(快进) ←→(逐帧) │
│ │
└─────────────────────────────────────────────────────────────┘检查清单:
- 播放完整视频,确认整体节奏
- 逐帧检查场景切换点,确认过渡流畅
- 在 Props 编辑器中修改参数,确认参数化正常
- 检查文字是否完整显示(无截断、无溢出)
- 检查颜色和字体是否符合品牌规范
步骤 3:通过自然语言迭代修改
这是 AI + Remotion 工作流的核心优势——用对话代替手动改代码:
迭代循环:
┌──────────────┐
│ Studio 预览 │
│ 发现问题 │
└──────┬───────┘
│
▼
┌──────────────┐
│ 自然语言描述 │ "把标题动画改成从左侧滑入,
│ 修改需求 │ 而不是从底部弹入"
└──────┬───────┘
│
▼
┌──────────────┐
│ Claude Code │
│ 修改代码 │
└──────┬───────┘
│
▼
┌──────────────┐
│ Studio 热更新│ ← 代码保存后 Studio 自动刷新
│ 查看效果 │
└──────┬───────┘
│
▼
满意?──否──→ 回到"自然语言描述"
│
是
│
▼
进入渲染阶段常见迭代请求示例:
| 迭代类型 | Prompt 示例 |
|---|---|
| 调整动画 | ”让文字出现的动画更有弹性,使用 spring 替代 interpolate” |
| 修改配色 | ”把背景色改成 #1e1b4b,主色调改成 #818cf8” |
| 调整时间 | ”第一个场景太短了,延长到 4 秒,总时长保持 15 秒” |
| 添加元素 | ”在右下角添加一个半透明的 Logo 水印” |
| 修复问题 | ”第三个要点的文字被截断了,请缩小字号或换行” |
| 添加音效 | ”在每个要点出现时添加一个轻微的 ‘pop’ 音效” |
| 数据绑定 | ”把硬编码的文字改成从 props 传入,方便批量生成” |
步骤 4:利用 Props 编辑器快速测试
Remotion Studio 的 Props 编辑器允许你在不改代码的情况下修改组件参数:
- 在侧边栏找到 Props 编辑器面板
- 修改
title、items等参数值 - 预览画面实时更新
- 确认参数化方案是否满足批量生成需求
这对于验证”同一模板 + 不同数据 = 不同视频”的参数化方案特别有用。
提示词模板
我在 Remotion Studio 中预览了视频,整体效果不错,但需要以下调整:
1. [具体修改 1,如"标题动画太快,延长到 2 秒"]
2. [具体修改 2,如"背景添加微妙的粒子效果"]
3. [具体修改 3,如"结尾场景添加渐隐效果"]
请修改代码。修改后我会在 Studio 中重新预览。5. 阶段 4:渲染输出
预览满意后,将视频代码渲染为可分发的视频文件。Remotion 提供三种渲染方式,适用于不同场景。
工具推荐
| 渲染方式 | 适用场景 | 速度 | 成本 | 配置复杂度 |
|---|---|---|---|---|
| 本地 CLI 渲染 | 开发测试、单个视频 | 中等(取决于机器性能) | 免费(仅电费) | 低 |
| Remotion Lambda | 批量生产、SaaS 产品 | 快(并行渲染) | AWS 费用约 $0.01-0.05/视频 | 中等 |
| Remotion Cloud Run | GCP 生态用户 | 快(并行渲染) | GCP 费用 | 中等 |
| Studio 内渲染 | 快速导出、非技术用户 | 中等 | 免费 | 最低 |
操作步骤
步骤 1:本地 CLI 渲染(推荐起步方式)
# 基本渲染命令
npx remotion render <CompositionId> <输出路径>
# 示例:渲染 MyVideo 组合为 MP4
npx remotion render MyVideo out/my-video.mp4
# 指定编码器和质量
npx remotion render MyVideo out/my-video.mp4 --codec=h264 --crf=18
# 渲染为 WebM 格式
npx remotion render MyVideo out/my-video.webm --codec=vp8
# 渲染为 GIF
npx remotion render MyVideo out/my-video.gif --codec=gif --every-nth-frame=2
# 传入自定义 Props(JSON 格式)
npx remotion render MyVideo out/my-video.mp4 \
--props='{"title":"自定义标题","items":["A","B","C"]}'常用渲染参数:
| 参数 | 说明 | 默认值 | 推荐值 |
|---|---|---|---|
--codec | 视频编码器 | h264 | h264(兼容性最好) |
--crf | 质量(0-51,越低越好) | 自动 | 18(高质量)/ 23(平衡) |
--concurrency | 并行渲染线程数 | 50% CPU 核心 | 不指定(自动优化) |
--props | 传入 JSON 格式的 Props | defaultProps | 批量渲染时使用 |
--every-nth-frame | GIF 跳帧(降低帧率) | 1 | 2(GIF 推荐) |
--scale | 缩放因子 | 1 | 0.5(快速预览)/ 1(正式输出) |
步骤 2:理解渲染过程
渲染过程详解:
npx remotion render MyVideo out/video.mp4
│
▼
┌─────────────────────────────────┐
│ 1. 打包 React 代码(Webpack) │ ← 约 5-15 秒
└────────────┬────────────────────┘
▼
┌─────────────────────────────────┐
│ 2. 启动 Chrome Headless Shell │ ← 首次需下载,约 100MB
└────────────┬────────────────────┘
▼
┌─────────────────────────────────┐
│ 3. 逐帧渲染 │
│ 帧 0: React 渲染 → 截图 → 编码│
│ 帧 1: React 渲染 → 截图 → 编码│ ← 主要耗时
│ ... │
│ 帧 N: React 渲染 → 截图 → 编码│
└────────────┬────────────────────┘
▼
┌─────────────────────────────────┐
│ 4. FFmpeg 合成最终视频 │ ← 约 2-5 秒
└────────────┬────────────────────┘
▼
out/video.mp4 ✓步骤 3:批量渲染(参数化生产)
当你需要用同一模板生成多个不同内容的视频时:
# 方法 1:Shell 脚本循环
for i in 1 2 3 4 5; do
npx remotion render MyVideo "out/video-$i.mp4" \
--props="$(cat data/video-$i.json)"
done
# 方法 2:使用 Node.js 脚本(推荐)
# render-batch.mjs
import { bundle } from "@remotion/bundler";
import { renderMedia, selectComposition } from "@remotion/renderer";
import { readFileSync } from "fs";
const bundleLocation = await bundle("./src/index.ts");
const videos = JSON.parse(readFileSync("./data/videos.json", "utf-8"));
for (const video of videos) {
const composition = await selectComposition({
serveUrl: bundleLocation,
id: "MyVideo",
inputProps: video.props,
});
await renderMedia({
composition,
serveUrl: bundleLocation,
codec: "h264",
outputLocation: `out/${video.id}.mp4`,
inputProps: video.props,
});
console.log(`✓ 渲染完成: ${video.id}`);
}步骤 4:Studio 内渲染(最简单方式)
如果不想用命令行,可以直接在 Remotion Studio 界面中渲染:
- 在 Studio 中选择要渲染的 Composition
- 点击右上角的”Render”按钮
- 选择输出格式(MP4/WebM/GIF)和质量
- 点击”Start Render”
- 渲染完成后自动保存到
out/目录
提示词模板
我的视频预览效果已经满意,现在需要渲染输出。请帮我:
1. 生成渲染命令(MP4 格式,h264 编码,高质量)
2. 如果需要批量渲染 [数量] 个不同版本,请生成批量渲染脚本
3. 数据源格式:[描述数据格式,如 JSON 文件/API 接口]
额外要求:
- [如:需要同时输出横屏和竖屏版本]
- [如:需要生成缩略图(静态帧)]6. 阶段 5:分发与集成
渲染完成的视频需要到达最终用户。根据使用场景,分发方式各不相同。
操作步骤
步骤 1:选择分发方式
| 分发方式 | 适用场景 | 实现方式 |
|---|---|---|
| 手动上传 | 社交媒体、视频平台 | 直接上传 MP4 到 YouTube/抖音/B站 |
| CDN 托管 | Web 嵌入、邮件链接 | 上传到 S3/Cloudflare R2 + CDN |
| API 集成 | SaaS 产品、自动化管线 | Remotion Lambda API + Webhook 回调 |
| 邮件附件/链接 | 个性化报告视频 | 渲染后通过邮件服务发送 |
| Web 嵌入 | 网页内实时预览 | 使用 @remotion/player 组件 |
步骤 2:自动化分发管线示例
完整自动化管线:
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ 数据源 │ │ 渲染服务 │ │ 分发服务 │
│ (API/DB) │───→│ (Lambda) │───→│ (CDN/邮件) │
└──────────┘ └──────────────┘ └──────────────┘
具体流程:
1. 定时任务触发(cron / webhook)
2. 从数据库/API 拉取最新数据
3. 为每条数据生成 Props JSON
4. 调用 Remotion Lambda 渲染
5. 渲染完成后上传到 S3/CDN
6. 通过邮件/消息推送视频链接给用户步骤 3:使用 Remotion Player 实现 Web 嵌入预览
如果你的产品需要在网页中展示视频预览(而非下载 MP4),可以使用 @remotion/player:
import { Player } from "@remotion/player";
import { MyVideo } from "./MyVideo";
export const VideoPreview: React.FC = () => {
return (
<Player
component={MyVideo}
durationInFrames={450}
fps={30}
compositionWidth={1920}
compositionHeight={1080}
style={{ width: "100%" }}
controls
inputProps={{
title: "实时预览",
items: ["功能 A", "功能 B", "功能 C"],
}}
/>
);
};Player 在浏览器中实时渲染 React 组件,无需预先生成 MP4 文件。适合需要实时预览或交互式编辑的场景。
7. 完整工作流实战演示
将五个阶段串联起来,展示一个从零到成品的完整流程。
操作步骤
步骤 1:完整流程时间线
以”制作一个 Top 5 编程语言排行榜短视频”为例:
时间线(约 25 分钟):
00:00 ─── 阶段 1:编写 Prompt ───────────────────────
│ 确定参数:竖屏 1080x1920,15 秒,30fps
│ 编写结构化 prompt:标题→5 个排名项→结尾
│
05:00 ─── 阶段 2:AI 生成代码 ───────────────────────
│ 在 Claude Code 中输入 prompt
│ AI 生成 4 个文件:主组件 + 3 个场景组件
│ AI 自动注册 Composition 到 Root.tsx
│
08:00 ─── 阶段 3:预览与迭代 ───────────────────────
│ npm run dev → 打开 Studio
│ 第 1 轮迭代:"动画太生硬,改用 spring"
│ 第 2 轮迭代:"添加 emoji 图标"
│ 第 3 轮迭代:"背景加渐变和粒子效果"
│ 第 4 轮迭代:"把数据改成从 props 传入"
│
20:00 ─── 阶段 4:渲染输出 ─────────────────────────
│ npx remotion render TopFive out/top5.mp4
│ 等待渲染完成(约 30 秒)
│ open out/top5.mp4 → 确认效果
│
23:00 ─── 阶段 5:分发 ─────────────────────────────
│ 上传到 YouTube Shorts / 抖音
│ 修改 JSON 数据 → 渲染第 2 个版本
│
25:00 ─── 完成 ✓步骤 2:实际 Prompt 示例
请帮我创建一个 "Top 5 编程语言 2026" 的 YouTube Shorts 视频:
【基本参数】
- 分辨率:1080x1920(竖屏)
- 时长:15 秒
- 帧率:30fps
【内容结构】
- 场景 1(0-3 秒):标题 "Top 5 编程语言 2026" 从底部弹入,带 spring 动画
- 场景 2(3-12 秒):依次展示 5 个编程语言,每个 1.8 秒
- 每项包含:排名数字、语言名、emoji、一句话描述
- 每项从右侧滑入,带 spring 弹性效果
- 底部有进度条显示当前进度
- 场景 3(12-15 秒):结尾文字 "关注获取更多" + 渐隐
【视觉风格】
- 背景:深色渐变(#0f0f23 → #1a1a3e),带微妙粒子效果
- 主色调:#a78bfa(紫色)
- 排名数字:大号粗体,带发光效果
- 动画:全部使用 spring 弹性动画
【数据驱动】
- 所有内容从 props 传入(标题、5 个项目的数据)
- 导出 Props 类型接口
- 创建示例数据文件 data.json步骤 3:迭代对话示例
第 1 轮迭代:
用户:"动画看起来有点僵硬,能不能让每个排名项出现时有更明显的弹跳效果?"
AI:修改 spring 参数(增大 mass,减小 damping),添加 overshoot
第 2 轮迭代:
用户:"进度条太粗了,改成 3px 高度,颜色跟主色调一致"
AI:修改进度条样式
第 3 轮迭代:
用户:"背景的粒子效果太密了,减少到 20 个粒子,移动速度放慢"
AI:调整粒子数量和速度参数
第 4 轮迭代:
用户:"很好!现在帮我生成渲染命令,同时生成一个批量渲染脚本,
我想用不同的数据生成 10 个不同主题的视频"
AI:生成 CLI 渲染命令 + Node.js 批量渲染脚本8. 高级工作流:SaaS 模式与自动化管线
除了开发者本地使用的工作流,Remotion 还支持面向终端用户的 SaaS 模式和全自动化管线。
工具推荐
| 工具 | 用途 | 价格 | 适用场景 |
|---|---|---|---|
| Remotion AI SaaS 模板 | 面向用户的 prompt→视频 Web 应用 | 免费(开源模板) | 构建视频生成 SaaS |
| Remotion Lambda | 云端无服务器渲染 | AWS 费用约 $0.01-0.05/视频 | 生产级批量渲染 |
| n8n / Make.com | 工作流自动化 | n8n 自托管免费;Make 免费层可用 | 触发渲染 + 分发 |
| Next.js | 全栈 Web 框架 | 免费(开源) | SaaS 前后端 |
操作步骤
步骤 1:理解 SaaS 模式架构
Remotion 官方提供了 AI SaaS 模板(prompt-to-motion-graphics),架构如下:
┌─────────────────────────────────────────────────────────┐
│ 用户浏览器 │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 聊天界面 实时预览 │ │
│ │ ┌─────────────────┐ ┌─────────────────┐ │ │
│ │ │ 用户输入 prompt │ │ Remotion Player │ │ │
│ │ │ "做一个旋转的 │ │ (浏览器内实时 │ │ │
│ │ │ Logo 动画" │ │ 渲染预览) │ │ │
│ │ └────────┬────────┘ └────────▲────────┘ │ │
│ │ │ │ │ │
│ └───────────┼─────────────────────────┼─────────────┘ │
│ │ │ │
└──────────────┼─────────────────────────┼─────────────────┘
│ │
▼ │
┌──────────────────────────────┐ │
│ Next.js 后端 │ │
│ ┌────────────────────────┐ │ │
│ │ LLM API(OpenAI/Claude)│ │ │
│ │ 生成 React 代码 │──┼─────────┘
│ │ JIT 编译 → 浏览器执行 │ │ (流式返回代码,
│ └────────────────────────┘ │ 浏览器即时编译预览)
│ ┌────────────────────────┐ │
│ │ Remotion Lambda │ │
│ │ 最终渲染 → MP4 下载 │ │
│ └────────────────────────┘ │
└──────────────────────────────┘关键特性:
- 用户在聊天界面输入自然语言描述
- LLM 流式生成 React 代码
- 浏览器通过 JIT(即时编译)实时预览,无需服务器渲染
- 用户满意后,通过 Lambda 渲染为 MP4 下载
- 支持对话式迭代修改
步骤 2:搭建 SaaS 模板
# 使用官方模板创建项目
npx create-video@latest --template prompt-to-motion-graphics
# 配置环境变量
# .env
OPENAI_API_KEY=sk-...
# (可选)配置 Lambda 渲染
REMOTION_AWS_ACCESS_KEY_ID=...
REMOTION_AWS_SECRET_ACCESS_KEY=...
# 启动开发服务器
npm run dev步骤 3:自动化管线架构
对于需要全自动化的场景(如每日数据报告视频),可以构建以下管线:
┌──────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────┐
│ 触发器 │ │ 数据处理 │ │ 视频渲染 │ │ 分发 │
│ │ │ │ │ │ │ │
│ • Cron │───→│ • 拉取数据 │───→│ • Lambda │───→│ • S3/CDN │
│ • Webhook│ │ • 生成 Props │ │ • 并行渲染 │ │ • 邮件 │
│ • API │ │ • 验证数据 │ │ • 输出 MP4 │ │ • Slack │
└──────────┘ └──────────────┘ └──────────────┘ └──────────┘实现要点:
- 视频模板代码只需开发一次(用 Claude Code + Remotion Skills)
- 数据变化时只需更新 Props,无需修改代码
- Lambda 渲染支持并行,200 个视频可在几分钟内完成
- 整个管线可以用 n8n、GitHub Actions 或自定义脚本编排
实战案例:从 Prompt 到 YouTube Shorts 的完整旅程
场景描述
一位内容创作者想要批量制作”每日科技新闻”系列 YouTube Shorts。每期视频展示 3 条新闻标题,配以简洁的动画效果。他希望每天只需更新新闻数据,就能自动生成新视频。
完整操作流程
阶段 1:Prompt 设计(5 分钟)
请创建一个"每日科技新闻"YouTube Shorts 模板:
- 竖屏 1080x1920,20 秒,30fps
- 开头 3 秒:日期 + "今日科技快讯" 标题弹入
- 中间 12 秒:3 条新闻依次展示,每条 4 秒
- 新闻编号(01/02/03)+ 标题 + 来源
- 从右侧滑入,带 spring 动画
- 结尾 5 秒:"关注获取每日更新" + 频道 Logo
- 深色科技风背景,主色调 #00d4ff(青色)
- 所有内容从 props 传入(日期、3 条新闻数据)阶段 2:AI 生成代码(3 分钟)
Claude Code 生成了 5 个文件:DailyNews/index.tsx、TitleScene.tsx、NewsItem.tsx、OutroScene.tsx、types.ts,并更新了 Root.tsx。
阶段 3:预览与迭代(10 分钟)
- 迭代 1:“新闻标题太长时会溢出,请添加自动截断和省略号”
- 迭代 2:“添加一个扫描线效果,增强科技感”
- 迭代 3:“新闻切换时添加一个短暂的闪烁过渡”
阶段 4:渲染(1 分钟)
npx remotion render DailyNews out/daily-news-2026-07-15.mp4 \
--props='{"date":"2026-07-15","news":[{"title":"Apple 发布 M5 芯片","source":"TechCrunch"},{"title":"OpenAI 推出 GPT-5","source":"The Verge"},{"title":"Rust 2.0 正式发布","source":"GitHub Blog"}]}'阶段 5:分发与自动化
创建 data/ 目录存放每日新闻 JSON,编写批量渲染脚本,每天更新数据后一键生成视频。
案例分析
关键决策点:
- 模板化设计:将所有可变内容(日期、新闻标题、来源)抽象为 Props,实现”一次开发,每日复用”
- 迭代效率:3 轮自然语言迭代就完成了视觉调优,总共不到 10 分钟
- 批量生产成本:模板开发完成后,每个视频的边际成本接近零(仅渲染算力)
- 可扩展性:同一模板可以轻松扩展为”每周回顾”(5 条新闻)或”月度总结”(10 条新闻),只需调整 Props 结构
避坑指南
❌ 常见错误
-
Prompt 过于模糊
- 问题:写”做一个好看的视频”,AI 不知道具体要什么,生成的代码需要大量迭代
- 正确做法:明确指定分辨率、时长、场景结构、颜色值、动画类型。越具体,迭代越少
-
跳过 Studio 预览直接渲染
- 问题:渲染一个 30 秒视频可能需要 1-2 分钟,发现问题后重新渲染浪费时间
- 正确做法:始终先在 Studio 中预览确认效果,满意后再渲染。Studio 预览是实时的,零成本
-
在迭代时手动改代码而非用 AI
- 问题:手动修改 AI 生成的代码容易引入不一致,且后续 AI 修改可能覆盖你的改动
- 正确做法:所有修改都通过自然语言告诉 Claude Code,让 AI 保持对代码的完整理解
-
忽略参数化设计
- 问题:把文字、颜色、数据硬编码在组件中,每次改内容都要改代码
- 正确做法:在第一次 prompt 中就要求 AI 将可变内容设计为 Props,方便批量生成
-
渲染时不指定
--crf质量参数- 问题:默认质量可能不满足需求,或文件过大
- 正确做法:正式输出用
--crf=18(高质量),测试用--crf=28(小文件快速验证)
-
混淆 Studio 预览和最终渲染的效果
- 问题:Studio 中的预览是浏览器实时渲染,可能与最终 MP4 有细微差异(如字体渲染、抗锯齿)
- 正确做法:最终确认以渲染后的 MP4 文件为准。如果发现差异,调整代码后重新渲染
-
批量渲染时未做错误处理
- 问题:渲染 100 个视频时,某个视频因数据问题失败,导致整个批次中断
- 正确做法:在批量渲染脚本中添加 try-catch,记录失败项,完成后重试失败的视频
✅ 最佳实践
- Prompt 先写场景分解:在描述视觉效果之前,先用”场景 1(0-3 秒):…”的格式规划时间线
- 每次迭代只改一件事:避免一次提出 5 个修改,逐个修改更容易定位问题
- 善用 Props 编辑器:在 Studio 中用 Props 编辑器快速测试不同数据,确认参数化方案
- 保存有效的 Prompt:将成功的 prompt 模板保存为文件,下次类似需求直接复用
- Git 管理视频代码:将 Remotion 项目纳入版本控制,每次迭代都有记录可回溯
- 先用
--scale=0.5快速渲染:正式渲染前用半分辨率快速验证,确认无误后再全分辨率渲染
相关资源与延伸阅读
- Remotion 官方文档 — 渲染指南 — 本地渲染的完整参数说明和最佳实践
- Remotion CLI Render 命令参考 — CLI 渲染命令的所有可用参数
- Remotion AI SaaS 模板 — 官方 prompt-to-motion-graphics 模板,用于构建面向用户的视频生成 SaaS
- Remotion AI 集成总览 — Remotion 为 AI Agent 提供的所有集成功能,包含 System Prompt 和文档获取方式
- Remotion Agent Skills 文档 — Skills 安装、更新和使用的官方说明
- Remotion Lambda 文档 — AWS Lambda 分布式渲染的完整指南和成本估算
- Remotion Player 文档 — Web 嵌入式播放组件的 API 参考
- Remotion @remotion/renderer API — Node.js 服务端渲染 API,用于构建自动化管线
- YouTube Shorts Generator with Remotion + Claude Code — AyyazTech — 完整的 YouTube Shorts 生成器教程
- Prompt to Video with Claude Code — NemoVideo — 从 prompt 到视频的完整工作流指南
参考来源
- Remotion Official Documentation — Rendering (2026-06)
- Remotion CLI Render Command Reference (2026-06)
- Remotion AI SaaS Template — Prompt to Motion Graphics (2026-06)
- Remotion Agent Skills Documentation (2026-06)
- Remotion AI Integration Guide (2026-01)
- Make Videos with Claude Code: Remotion AI Video — StartupHub (2026-06)
- Create React Videos via Claude Code — Gaga.art (2026-06)
- I Built a YouTube Shorts Generator with AI (Remotion + Claude Code) — AyyazTech (2026-06)
- Prompt to Video in 2026: Complete Guide to Remotion Agent Skills — NemoVideo (2026)
- Claude AI Makes Remotion Video Editing Easy — VidAU (2026-06)
- Remotion Skills Turns Prompts into Videos — Abaka.ai (2026)
- Claude Code Video with Remotion: Best Motion Guide 2026 — Dplooy (2026)