用途:这是面向 Remotion(用 React 以编程方式生成视频)的知识型技能,在编写、调试或渲染 Remotion 代码前充当规则依据。它不直接渲染视频,而是在接触组合代码前为使用者提供规范。
主要能力:涵盖动画核心(interpolate 范围、贝塞尔缓动、spring 配置、Sequence、TransitionSeries、裁剪、文字动画)、特效(HtmlInCanvas、Light Leaks、透明视频、Lottie)、音频与旁白(音量曲线、ElevenLabs 配音、音效、音频可视化、时长与静音检测)、字幕(字幕渲染、样式、SRT 导入、转录)、媒体处理(图像、视频、GIF、尺寸与时长、ffmpeg)、组合与元数据(静帧、文件夹、默认属性、异步元数据计算、Zod 参数)、字体(优先 Google Fonts,本地字体兜底、文本尺寸测量)以及 3D、Mapbox、Tailwind 等专项规则。
关键硬性规则:禁止使用 CSS 过渡与 @keyframes,禁止 Tailwind 的 animate-* 类;所有运动必须由 useCurrentFrame() 配合 interpolate() 或 spring() 驱动;媒体使用 @remotion/media 的 Img、Video、Audio 而非原生标签;公共资源用 staticFile() 引用;渲染前先渲染静帧检查;长渲染前用 npx remotion still <id> --frame=30 --scale=0.25 做单帧校验。
用法要点:新项目可用 npx create-video@latest --yes --blank --no-tailwind my-video,随后 cd my-video 并运行 npx remotion studio 预览;渲染用 npx remotion render <id> out/video.mp4。涉及 WebGL 时加 --gl=angle,并在 remotion.config.ts 中调用 Config.setChromiumOpenGlRenderer("angle")。宽度、高度、fps、时长应设置在 Root.tsx 的 Composition 上,动态时长用 calculateMetadata。
限制与前提:HtmlInCanvas 需要 Chrome 149+ 并开启 chrome://flags/#canvas-draw-element,非 Chromium 环境无法渲染;不得嵌套 HtmlInCanvas;WebGL 效果不使用 --gl=angle 可能在无头渲染中产生黑帧。品牌文件可缺失,缺失时使用中性默认值(1920×1080、30fps、系统字体、每节拍 6 秒保持),但具体品牌内容与其它细节以资料为准,未提供部分暂未说明。