SuperAPI AI 工具集

import-canvas-capture

编程与开发

查看项目

更新于 10-16 02:22

技能介绍

用途

import-canvas-capture 用于把一段已录制的 Remotion Canvas Capture 导入到 Remotion 项目中,整个过程不需要与 Studio 交互。它属于内部、不稳定的工作流,应保留在 .agents/skills 中,不要通过 packages/skills 分发,也不要把该命令作为稳定 API 来文档化。

主要能力

  • 定位录制文件与目标 Remotion 项目。原始录制必须包含内嵌的 REMOTION_CAPTURE_DATA 元数据;如果视频经过转换而丢失了该元数据,则无法导入。
  • 检查项目,找到包含组合注册的 TypeScript 文件(通常是 src/Root.tsx),并选择一个未使用的组合 ID。
  • 导入器会在注册文件旁生成一个组件、注册该组件、把视频复制到 public 目录,并按项目当前的 Remotion 版本安装缺失的 @remotion/media 和 @remotion/mac-cursors 依赖。
  • 无需运行 Studio。已有的 Studio 会话会通过文件监听器感知源码变更;此操作不会进入 Studio 的撤销栈。

使用方式

在目标项目根目录下运行:

bunx remotion experimental-codemod add-canvas-capture /absolute/path/capture.webm \
  --composition-file src/Root.tsx \
  --id MyCapture

在 monorepo 中开发该命令时,先用 bun run build 构建 CLI,然后在目标项目根目录调用本地 CLI:

node /absolute/path/to/remotion/packages/cli/remotion-cli.js \
  experimental-codemod add-canvas-capture /absolute/path/capture.webm \
  --composition-file src/Root.tsx --id MyCapture

完成后,检查报告中的源文件和 public 资源,并向用户报告组合 ID 与变更的文件。

选项与冲突

  • 默认值与 Studio 的 capture 导入一致:1920×1080、60 fps,时长按录制向上取整。可用 --width、--height、--fps 覆盖。录制视频的尺寸与组合尺寸相互独立。
  • --public-dir 覆盖已配置的 public 目录。--package-manager 选择依赖安装器。
  • --dry-run 会解析录制并生成源码变更,但不安装依赖、不写入项目文件。程序化结果中包含建议的源码变更。
  • 注册文件相对于项目根目录解析;CLI 的 capture 路径相对于当前工作目录解析。
  • 已存在的组件文件和冲突的 public 资源会被拒绝。如果录制文件已在 public 目录中,可把该文件作为输入以复用。否则请重命名输入或选择另一个组合 ID;不要为了绕过错误而覆盖已有资源或组件。

程序化访问

使用来自 @remotion/cli 的 CliInternals.importCanvasCapture。它是内部且不稳定的。其输入包括 captureFile、compositionFile、compositionId、remotionRoot、publicDir、fps、width、height、packageManager、logLevel 和 dryRun。默认目录、尺寸、帧率和包管理器请传 null。文件路径相对于 remotionRoot 解析。结果包含组合 ID、源文件与资源路径、组合元数据以及 codemod 变更。传 dryRun: true 可在内存中检查变更。

适用场景

适用于需要把已录制的 Canvas Capture 以脚本化、非交互方式加入 Remotion 项目的场景,例如在自动化流程或 monorepo 开发中导入 capture。

限制

  • 该工作流为内部、不稳定,不应作为稳定 API 分发或文档化。
  • 录制文件必须保留内嵌的 REMOTION_CAPTURE_DATA 元数据,否则无法导入。
  • 已存在的组件文件与冲突的 public 资源会被拒绝,不能通过覆盖来绕过错误。
  • 此操作不进入 Studio 的撤销栈。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。