mcpField
R
remotion

remotion

github.com/google-labs-code创意与媒体8.6k41.5k 次安装10 周前更新
代码仓库

关于 remotion

利用 Remotion 将 Stitch 屏幕制作成应用演示视频的视频制作技能,指导资源获取、合成、转场、文字叠加、预览和渲染。

主要功能

  1. 01查找 Stitch 项目和屏幕
  2. 02下载并整理屏幕截图
  3. 03在 Remotion 中编排画面
  4. 04添加转场与文字叠加
  5. 05预览并渲染演示视频

适用场景

  1. 01制作应用屏幕导览视频
  2. 02呈现设计好的用户流程
  3. 03用缩放或热点突出界面元素
  4. 04渲染可供分享的演示视频

MCP 相关

使用 Stitch MCP 查找项目并获取屏幕详情,也可通过 Remotion MCP 服务渲染视频合成。

安装

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

$npx skills add https://github.com/google-labs-code/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/ 目录中的示例
第 3 步:预览和优化
  1. 启动 Remotion Studio:

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

    • 确保每个屏幕的显示时长合适
    • 确认转场流畅
    • 检查文本叠加层的显示时机
  3. 微调动画:

    • 调整缩放效果的弹簧配置
    • 修改转场的缓动函数
    • 确保文本始终清晰可读
第 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 技能:

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

常见模式

模式 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