mcpField
R
remotion

remotion

github.com/leonxlnx创意与媒体10100 次安装33 周前更新
代码仓库

关于 remotion

remotion 是一项 Agent 技能,可将 Stitch 项目中的界面制作成 Remotion 演示视频。它涵盖界面检索、加入转场与文字叠层的合成、预览,以及通过 Remotion CLI 或 MCP 渲染。

主要功能

  1. 01检索 Stitch 项目界面及元数据
  2. 02整理截图与界面信息
  3. 03制作含转场和缩放的幻灯片
  4. 04添加标题、描述和标注
  5. 05使用 Remotion 预览与渲染

适用场景

  1. 01制作应用界面导览视频
  2. 02展示逐步展开的用户流程
  3. 03用动画标注突出界面功能

MCP 相关

使用 Stitch MCP Server 查找项目并获取界面数据。Remotion MCP Server 可用时可用于渲染,也可使用 Remotion CLI。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/leonxlnx/stitch-skills --skill remotion

安装后在 Claude Code 中输入/remotion确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
examples/
screens.json
WalkthroughComposition.tsx
resources/
composition-checklist.md
screen-slide-template.tsx
scripts/
download-stitch-asset.sh

详细介绍

从 Stitch 到 Remotion 的演示视频

你是一名视频制作专家,专注于根据应用设计创建引人入胜的演示视频。你将 Stitch 的屏幕检索能力与 Remotion 的程序化视频生成能力相结合,制作流畅、专业的演示。

概述

这项技能使你能够创建演示视频,以专业的转场、缩放效果和上下文文字叠加来展示应用屏幕。该工作流从 Stitch 项目中检索屏幕,并将它们编排成一个 Remotion 视频合成。

前提条件

必需:

  • 可访问 Stitch MCP 服务
  • 可访问 Remotion MCP 服务(或 Remotion 命令行)
  • 已安装 Node.js 和 npm
  • 一个包含已设计屏幕的 Stitch 项目

推荐:

  • 熟悉 Remotion 的视频能力
  • 了解 React 组件(Remotion 使用 React)

检索与网络

第 1 步:发现可用的 MCP 服务

运行 list_tools 以识别可用的 MCP 服务及其前缀:

  • Stitch MCP:查找 stitch: 或 mcp_stitch: 前缀
  • Remotion MCP:查找 remotion: 或 mcp_remotion: 前缀
第 2 步:检索 Stitch 项目信息
  1. 项目查询(如果未提供 Project ID):

    • 使用 filter: "view=owned" 调用 [stitch_prefix]:list_projects
    • 根据标题识别目标项目(例如 "Calculator App")
    • 从 name 字段中提取 Project ID(例如 projects/13534454087919359824)
  2. 屏幕检索:

    • 使用项目 ID(仅数字)调用 [stitch_prefix]:list_screens
    • 查看屏幕标题,以识别演示所需的所有屏幕
    • 从每个屏幕的 name 字段中提取 Screen ID
  3. 获取屏幕元数据: 对于每个屏幕:

    • 使用 projectId 和 screenId 调用 [stitch_prefix]:get_screen
    • 获取:
      • screenshot.downloadUrl — 用于视频的视觉素材
      • htmlCode.downloadUrl — 可选:用于提取文本/内容
      • width、height — 屏幕尺寸,用于正确缩放
      • 屏幕标题和描述,用于文字叠加
  4. 下载素材:

    • 使用 web_fetch 或带 curl 的 Bash 下载截图
    • 保存到暂存目录:assets/screens/{screen-name}.png
    • 按预期的演示流程顺序整理素材
第 3 步:设置 Remotion 项目
  1. 检查现有 Remotion 项目:

    • 查找 remotion.config.ts 或包含 Remotion 依赖项的 package.json
    • 如果存在,则使用现有的项目结构
  2. 创建新的 Remotion 项目(如需要):

    npm create video@latest -- --blank
    
    • 选择 TypeScript 模板
    • 在专用的 video/ 目录中进行设置
  3. 安装依赖项:

    cd video
    npm install @remotion/transitions @remotion/animated-emoji
    

视频合成策略

架构

创建一个模块化的 Remotion 合成,包含以下组件:

  1. ScreenSlide.tsx — 单个屏幕显示组件

    • Props:imageSrc、title、description、width、height
    • 功能:放大动画、淡入淡出转场
    • 时长:可配置(默认每个屏幕 3-5 秒)
  2. WalkthroughComposition.tsx — 主视频合成

    • 将多个 ScreenSlide 组件按顺序排列
    • 处理屏幕之间的转场
    • 添加文字叠加和注释
  3. config.ts — 视频配置

    • 帧率(默认:30 fps)
    • 视频尺寸(匹配 Stitch 屏幕尺寸或进行适当缩放)
    • 总时长计算
转场效果

使用 Remotion 的 @remotion/transitions 实现专业效果:

  • 淡入淡出:屏幕之间平滑交叉淡化

    import {fade} from '@remotion/transitions/fade';
    
  • 滑动:定向滑动转场

    import {slide} from '@remotion/transitions/slide';
    
  • 缩放:用于强调的放大/缩小效果

    • 使用 spring() 动画实现平滑缩放
    • 应用于重要的 UI 元素
文本叠加

使用 Remotion 的文本渲染添加上下文信息:

  1. 屏幕标题:显示在每一帧的顶部或底部
  2. 功能标注:用动画指针突出显示特定的 UI 元素
  3. 描述:为每个屏幕淡入描述性文本
  4. 进度指示器:在演示中显示当前屏幕位置

执行步骤

步骤 1:收集屏幕素材
  1. 确定目标 Stitch 项目
  2. 列出项目中的所有屏幕
  3. 下载每个屏幕的截图
  4. 按演示流程顺序整理
  5. 创建清单文件(screens.json):
{
  "projectName": "Calculator App",
  "screens": [
    {
      "id": "1",
      "title": "Home Screen",
      "description": "Main calculator interface with number pad",
      "imagePath": "assets/screens/home.png",
      "width": 1200,
      "height": 800,
      "duration": 4
    },
    {
      "id": "2",
      "title": "History View",
      "description": "View of previous calculations",
      "imagePath": "assets/screens/history.png",
      "width": 1200,
      "height": 800,
      "duration": 3
    }
  ]
}
步骤 2:生成 Remotion 组件

遵循 Remotion 最佳实践创建视频组件:

  1. 创建 ScreenSlide.tsx:

    • 使用 useCurrentFrame() 和 spring() 实现动画
    • 实现缩放和淡入淡出效果
    • 按时序添加文本叠加
  2. 创建 WalkthroughComposition.tsx:

    • 导入屏幕清单
    • 使用 <Sequence> 组件对屏幕进行排序
    • 在屏幕之间应用转场
    • 计算合适的时序和偏移量
  3. 更新 remotion.config.ts:

    • 设置合成 ID
    • 配置视频尺寸
    • 设置帧率和时长

参考资源:

  • 以 resources/screen-slide-template.tsx 作为起点
  • 参照 resources/composition-checklist.md 检查完整性
  • 查看 examples/walkthrough/ 目录中的示例
步骤 3:预览与调整
  1. 启动 Remotion Studio:

    npm run dev
    
    • 打开基于浏览器的预览
    • 支持实时编辑和调整
  2. 调整时序:

    • 确保每个屏幕有合适的显示时长
    • 验证转场是否流畅
    • 检查文本叠加的时序
  3. 微调动画:

    • 调整用于缩放效果的 spring 配置
    • 修改转场的缓动函数
    • 确保文本始终可读
步骤 4:渲染视频
  1. 使用 Remotion CLI 渲染:

    npx remotion render WalkthroughComposition output.mp4
    
  2. 替代方案:使用 Remotion MCP(如果可用):

    • 使用合成详情调用 [remotion_prefix]:render
    • 指定输出格式(MP4、WebM 等)
  3. 优化选项:

    • 设置质量级别(--quality)
    • 配置编解码器(--codec h264 或 h265)
    • 启用并行渲染(--concurrency)

高级功能

交互式热点

突出显示可点击元素或重要功能:

import {interpolate, useCurrentFrame} from 'remotion';

const Hotspot = ({x, y, label}) => {
  const frame = useCurrentFrame();
  const scale = spring({
    frame,
    fps: 30,
    config: {damping: 10, stiffness: 100}
  });
  
  return (
    <div style={{
      position: 'absolute',
      left: x,
      top: y,
      transform: `scale(${scale})`
    }}>
      <div className="pulse-ring" />
      <span>{label}</span>
    </div>
  );
};
配音集成

为演示添加旁白:

  1. 根据屏幕描述生成配音脚本
  2. 使用文本转语音或录制音频
  3. 使用 <Audio> 组件将音频导入 Remotion
  4. 使屏幕时序与配音节奏同步
动态文本提取

从 Stitch HTML 代码中提取文本以自动生成标注:

  1. 下载每个屏幕的 htmlCode.downloadUrl
  2. 解析 HTML 以提取关键文本元素(标题、按钮、标签)
  3. 为重要 UI 元素自动生成标注
  4. 作为定时文本叠加添加到合成中

文件结构

project/
├── video/                      # Remotion project directory
│   ├── src/
│   │   ├── WalkthroughComposition.tsx
│   │   ├── ScreenSlide.tsx
│   │   ├── components/
│   │   │   ├── Hotspot.tsx
│   │   │   └── TextOverlay.tsx
│   │   └── Root.tsx
│   ├── public/
│   │   └── assets/
│   │       └── screens/        # Downloaded Stitch screenshots
│   │           ├── home.png
│   │           └── history.png
│   ├── remotion.config.ts
│   └── package.json
├── screens.json                # Screen manifest
└── output.mp4                  # Rendered video

与 Remotion Skills 集成

Remotion 维护着自己的 Agent Skills,其中定义了最佳实践。查看这些内容以了解高级技巧:

可利用的关键 Remotion skills:

  • 动画时序与缓动
  • 合成架构模式
  • 性能优化
  • 音频同步

常见模式

模式 1:简单幻灯片

带淡入淡出转场的基础演示:

  • 每个屏幕 3-5 秒
  • 交叉淡化转场
  • 底部显示屏幕标题的文本叠加
  • 顶部进度条
模式 2:功能突出显示

聚焦特定 UI 元素:

  • 放大到特定区域
  • 用动画圆圈/箭头指向功能
  • 对关键交互进行慢动作强调
  • 并排的前后对比
模式 3:用户流程

展示逐步的用户旅程:

  • 按顺序展示屏幕,并使用方向性幻灯片切换
  • 叠加编号步骤
  • 突出显示用户操作(点击、轻触)
  • 使用动画路径连接屏幕

故障排除

问题解决方案
截图模糊确保下载的图片为完整分辨率;检查 screenshot.downloadUrl 质量设置
文本错位确认屏幕尺寸与合成尺寸一致;根据实际屏幕尺寸调整文本位置
动画卡顿将帧率提高到 60fps;使用具有适当阻尼的弹簧配置
Remotion 构建失败检查 Node 版本兼容性;确保已安装所有依赖项;查阅 Remotion 文档
时长感觉不对在清单中调整每个屏幕的显示时长;在 Remotion Studio 中预览;使用真实用户进行测试

最佳实践

  1. 保持纵横比:使用 Stitch 屏幕的实际尺寸或按比例缩放
  2. 时长一致:保持屏幕显示时长一致,除非要强调特定屏幕
  3. 文本易读:确保对比度充足;使用合适的字号;避免叠加内容过于杂乱
  4. 平滑过渡:使用弹簧动画实现自然运动;避免突兀的切换
  5. 充分预览:最终渲染前,务必在 Remotion Studio 中预览
  6. 优化资源:适当压缩图片;使用高效格式(UI 使用 PNG,照片使用 JPG)

使用示例

用户提示词:

Look up the screens in my Stitch project "Calculator App" and build a remotion video 
that shows a walkthrough of the screens.

Agent 工作流:

  1. 列出 Stitch 项目 → 找到“Calculator App” → 提取项目 ID
  2. 列出项目中的屏幕 → 确认所有屏幕(Home、History、Settings)
  3. 下载每个屏幕的截图 → 保存到 assets/screens/
  4. 创建包含屏幕元数据的 screens.json 清单
  5. 生成 Remotion 组件(ScreenSlide.tsx、WalkthroughComposition.tsx)
  6. 在 Remotion Studio 中预览 → 调整时长和过渡效果
  7. 渲染最终视频 → calculator-walkthrough.mp4
  8. 报告完成情况并附上视频预览链接

成功技巧

  • 从简单开始:先使用基本的淡入淡出过渡,再添加复杂动画
  • 遵循 Remotion 模式:利用 Remotion 官方技能和文档
  • 使用清单文件:将屏幕数据整理在 JSON 中,便于更新
  • 频繁预览:使用 Remotion Studio 尽早发现问题
  • 考虑无障碍性:添加字幕;确保文本易读;使用清晰的视觉内容
  • 针对平台优化:使视频尺寸符合目标平台(YouTube、社交媒体等)

参考资料

评论

支持 Markdown