视频制作通常被认为是设计师的专属领域——After Effects、Premiere Pro 等工具的学习曲线陡峭。但 Remotion 彻底改变了这一局面:它是一个基于 React 的开源框架,让你用 JavaScript 和 TypeScript 编写视频,目前已收获 20k+ Star。本文将从原理到实践,带你全面了解这款工具。
初识 Remotion:代码如何生成视频?
Remotion 的核心思想极其简单:将视频的每一帧视为一个 React 组件。这意味着你可以用熟悉的 React 语法组织视频结构,用 CSS 控制样式,用 Canvas 或 WebGL 绘制特效,甚至用 Node.js API 在服务器端批量渲染 MP4 文件。一句话总结:前端工程师无需学习新工具,用已有的 React 技能即可创作专业视频。
还在用 After Effects 套模板做视频?一个开源框架让你用 React 组件、CSS 动画、甚至 Canvas 直接生成 MP4——代码即视频,参数可编程,渲染可云化。

这种编程式视频创作的思路,与传统的 After Effects 或 Premiere Pro 完全不同——它把视频从“设计领域”拉回了“工程领域”,让自动化、参数化成为可能。
核心能力:它能做什么?
Remotion 的能力覆盖从个人创作到企业级应用:
- Compose with Code — 用 React 代码创建复杂动画、过渡和交互式视频。
- Edit Dynamically — 视频内容完全由数据驱动,嵌入到你的 Web 应用中实时修改。
- Scalable Rendering — 支持本地渲染、服务器渲染和 Serverless 渲染(如 AWS Lambda)。
| 特性 | 说明 |
|---|---|
| 全 Web 技术栈 | CSS、SVG、Canvas、WebGL 全支持,Web 开发者零门槛 |
| ⚡ React 组件化 | 可复用的视频组件,组合式创作,Fast Refresh 实时预览 |
| 参数化视频 | 通过 动态传入数据,一个模板生成 N 个视频 |
| ️ Remotion Studio | 内置可视化编辑器,实时预览、时间轴控制 |
| ☁️ 云端渲染 | AWS Lambda / Google Cloud Run 无服务器渲染,按需付费 |
| 可嵌入 Player | 组件可嵌入任意 React 应用 |
| AI 集成 | 支持 Claude Code 等工具,用自然语言 prompt 生成视频 |
| npm 生态 | 直接使用 npm 包,TypeScript 一等公民 |
| Serverless 渲染 | 支持无服务器环境,成本极低(几分钟视频仅需几美分) |
与其他视频框架不同,Remotion 天然支持 JavaScript 生态——你可以引入任何 npm 包(如 d3、Three.js)来生成视觉元素。这种灵活性让它在数据可视化、营销视频、社交媒体内容等场景中表现出色。
快速上手:5 分钟写出第一个视频
环境要求:Node.js 16+ 或 Bun 1.0.3+。首先创建项目:
# 一键创建视频项目
npx create-video@latest启动开发服务器后会进入 Remotion Studio——一个类似 Figma 的时间轴编辑器,可以实时预览视频效果:
cd my-video
npm run dev接下来写你的第一个视频组件。以下代码创建一个 30 帧、渐入效果的简单视频:
// src/MyComposition.tsx
import { AbsoluteFill, useCurrentFrame } from "remotion";
export const MyComposition = () => {
// useCurrentFrame() 返回当前帧号,从 0 开始
const frame = useCurrentFrame();
return (
{/* 每一帧显示不同数字 → 形成动画 */}
The current frame is {frame}.
);
};然后注册这个组件到 Composition:
// src/Root.tsx
import { Composition } from "remotion";
import { MyComposition } from "./MyComposition";
export const RemotionRoot: React.FC = () => {
return (
);
}; 最后渲染为 MP4 文件:
# 渲染成 MP4 视频
npx remotion render MyVideo out/video.mp45 行核心代码 = 1 个视频。对于熟悉 React 的开发者,几乎零学习成本。
⚙️ 核心原理:源码级别的理解
每个 Remotion 视频由 4 个属性定义:
const { fps, durationInFrames, width, height } = useVideoConfig();
// fps: 帧率(如 30)
// durationInFrames: 总帧数(如 150)
// width / height: 分辨率其中 useCurrentFrame() 是最关键的钩子——它返回当前帧号,你可以基于这个值计算动画进度。其他常用钩子包括:
| Hook | 作用 |
|---|---|
| 获取当前帧号(0 ~ durationInFrames-1) | |
| 获取视频配置(fps、分辨率、时长) | |
| 帧间插值,创建平滑动画 | |
| 弹簧物理动画 |
举个例子,实现一个从 0 到 1 的渐入动画:
import { AbsoluteFill, useCurrentFrame, interpolate } from "remotion";
export const FadeIn = () => {
const frame = useCurrentFrame();
// interpolate: 在第 0~30 帧之间,opacity 从 0 渐变到 1
const opacity = interpolate(frame, [0, 30], [0, 1], {
extrapolateRight: "clamp",
});
return (
Hello Remotion!
);
};这种模式与 React 动画库(如 Framer Motion)的思路类似,但 Remotion 将其扩展到整个视频时间轴。更强大的是 参数化视频——同一套代码,传入不同数据就能生成不同视频:
// 带参数的 Composition
export const RemotionRoot: React.FC = () => {
return (
);
}; 这是 Remotion 的杀手级能力:千人千面的自动化视频生成。对于营销团队,可以基于用户数据批量生成个性化广告;对于教育平台,可以自动生成带用户名字的课程证书。
☁️ 云端渲染:从本地到 Serverless
对于需要批量生成视频的场景,Remotion 提供了 AWS Lambda 渲染方案。其架构原理如下:
用户请求 → API 触发 → Lambda 并行渲染多个分片 → 合并为完整 MP4 → 上传 S3 → 返回下载链接关键优势包括:
- 按需付费:只在实际渲染时产生费用,几分钟视频仅需几美分。
- ⚡ 自动并行:视频自动切分为多个分片,并行渲染后拼接。
- 弹性扩展:无需管理服务器,自动应对突发流量。
# 安装 Lambda 支持
npm i @remotion/lambda
# 部署到 AWS
npx remotion lambda functions deploy
# 云端渲染
npx remotion lambda render MyVideo out/video.mp4⚠️ Lambda 渲染适合 80 分钟以内的 Full HD 视频。
值得一提的是,Remotion 的 Lambda 渲染与 Python 或 Java 的 Serverless 方案不同——它完全基于 Node.js 生态,利用 React 的虚拟 DOM 进行高效的帧计算。这意味着如果你熟悉 JavaScript,可以无缝接入云端渲染。
[AFFILIATE_SLOT_1]适用场景与优缺点
Remotion 在以下场景中表现突出:
| 场景 | 说明 |
|---|---|
| 个性化视频 | 根据用户数据(姓名、头像、数据)生成定制视频 |
| 数据可视化视频 | 将图表、数据报告转化为动态视频 |
| 社交媒体内容 | 批量生成 Instagram/抖音/TikTok 视频 |
| 教程和演示 | 代码演示、产品介绍、功能说明 |
| 营销自动化 | CRM 数据驱动千人千面的广告视频 |
| 企业通讯 | 动态数据报表、KPI 可视化视频 |
| 游戏预告片 | 程序化生成游戏高光集锦 |
但任何工具都有局限性。以下是 Remotion 的优缺点对比:
| 维度 | ✅ 优势 | ⚠️ 注意 |
|---|---|---|
| 上手难度 | 前端开发者零门槛,React 技能直接复用 | 非前端工程师需要学 React |
| 创作自由度 | CSS/Canvas/WebGL 全支持,理论上可以做任何视觉效果 | 复杂特效仍需图形学知识 |
| 可维护性 | 代码版本控制、组件复用、TypeScript 类型安全 | 视频修改需要重新渲染 |
| 批量生成 | 参数化 + 云端渲染,轻松批量生成 | 大量渲染需要管理成本 |
| 社区生态 | npm 生态 + 活跃社区 + 丰富模板 | 部分高级功能需要付费许可 |
| 许可证 | 个人和小团队(≤3人)免费 | 4人以上公司需要购买 Company License |
⚠️ 注意:Remotion 的许可证分为社区版和企业版。个人项目可免费使用,但商业项目需注意:
| 类型 | 价格 | 适用 |
|---|---|---|
| Free | 免费 | 个人、≤3 人团队 |
| Company | $100/月起 | 4+ 人公司 |
| Enterprise | $500/月起 | 高级需求、专属支持 |
如果你的团队正在考虑从 After Effects 迁移到代码化视频,建议先用 Remotion 制作一个简单原型,评估其性能是否满足需求。特别是对于复杂 3D 动画或高帧率视频,可能需要结合 Go 或 Rust 编写的底层渲染引擎来优化性能。
[AFFILIATE_SLOT_2]实践建议与延伸
以下是一些来自社区的最佳实践:
- 使用 TypeScript:Remotion 对 TypeScript 支持良好,类型定义能减少参数化视频的错误。
- 缓存复用:对于相似视频,利用 React 的 memo 避免重复计算。
- 并行渲染:在本地多核机器上,使用
--concurrency参数加速渲染。 - 结合 CI/CD:将视频生成集成到 GitHub Actions 中,实现自动化发布。
此外,Remotion 社区已经涌现出大量模板和插件——从社交媒体动画到数据可视化仪表盘,你可以直接复用这些代码,避免从零开始。
总结
Remotion 做了一件非常聪明的事——把视频创作从“设计领域”拉回了“工程领域”。如果你是前端开发者,你不需要学 Premiere、不需要学 After Effects。你只需要写 React 组件,就能创造专业级的视频。更重要的是,参数化 + 云端渲染的组合,让“千人千面的自动化视频生成”从概念变成了现实。
项目地址:https://github.com/remotion-dev/remotion
官方文档:https://www.remotion.dev/docs
在线体验:https://www.remotion.dev
社区 Discord:https://remotion.dev/discord
推荐指数:⭐⭐⭐⭐⭐
适合人群:React 前端开发者、需要批量生成视频的产品团队、对视频自动化感兴趣的工程师。
一句话:用代码写视频这件事,Remotion 做到了极致。
inputProps<Player>useCurrentFrame()useVideoConfig()interpolate()spring()
浙公网安备 33010602011771号