视频制作通常被认为是设计师的专属领域——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.mp4

5 行核心代码 = 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 渲染与 PythonJava 的 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 动画或高帧率视频,可能需要结合 GoRust 编写的底层渲染引擎来优化性能。

[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()