← 返回目录

Remotion 完整指南:HTML-in-Canvas 渲染原理与实战

visual_Production · 2026-05-17 · RemotionHTML-in-CanvasCRT效果GSAP动画

📋 元数据
id20260517-vis-15
created2026-05-17
last_reviewed2026-05-17
领域visual_Production
标签#Remotion #HTML-in-Canvas #CRT效果 #GSAP #动画
复用范围global
置信度confirmed
related[20260517-vis-03, 20260517-vis-13, 20260517-vis-14]
来源类型其他
来源文件remotion/html-in-canvas-magic.md + remotion/remotion-crt-guide.md + remotion/Remotion入门完全指南:从0到1.md

Remotion 完整指南:HTML-in-Canvas 渲染原理与实战

TL;DR

Remotion 用 React/TypeScript 写视频,每帧都是纯函数计算。核心优势:HTML/CSS/React 都能用在视频里,Chrome 将 DOM 绘制到 Canvas 输出像素。关键 API:registerRoot()/useCurrentFrame()/useVideoConfig()/interpolate()/spring()/AbsoluteFill/Sequence/staticFile()。陷阱:npm create video 无法自动化/必须用 .tsx/不写 registerRoot() 会报错。

触发场景

行动步骤

  1. 手动搭建项目:mkdir → package.json → tsconfig.json → remotion.config.ts → src/index.tsx
  1. registerRoot() + Composition 定义入口:id/组件/时长/fps/分辨率
  1. 核心 Hook:useCurrentFrame()获取帧号 / useVideoConfig()获取配置
  1. 动画:interpolate()帧到值映射 / spring()物理弹簧动画
  1. 渲染命令:remotion studio预览 / remotion still --frame=N / remotion render
  1. CSS Filter + mix-blend-mode 替代 WebGL:blur/saturate/hue-rotate + multiply/screen

证据

渲染性能(Mac M5 Pro 48GB):180帧@30fps+8x并发约45秒,输出2.9MB H264 MP4

失败边界

原理

Remotion 将 React 树交给 Chrome 渲染,Chrome 用 DOM/CSS 引擎渲染再捕获像素到 Canvas。每帧都是纯函数:frame=45 → 计算所有动画值 → 渲染完整 UI → canvas 输出 → FFmpeg 编码。HTML-in-Canvas 的本质是 Chrome 本身,Remotion 只负责帧管理、动画插值、组件树组织。

使用记录

| 日期 | 项目/场景 | 结果 | 备注 |

|------|----------|------|------|

| 2026-05-17 | Remotion完整指南 | confirmed | HTML-in-Canvas渲染原理 |