mcpField
R
remotion

remotion

github.com/sickn33创意与媒体48.7k64 次安装今天更新
代码仓库

关于 remotion

这项 Skill 通过从 Stitch 获取应用界面,并在 Remotion 中编排,制作界面演示视频。它指导 Agent 查找界面、准备素材、构建合成、预览和渲染。

主要功能

  1. 01查找 Stitch 项目和界面
  2. 02获取界面素材与元数据
  3. 03编排带转场和文字叠加的幻灯片
  4. 04在 Remotion Studio 中预览和调整
  5. 05通过 Remotion CLI 或 MCP 渲染

适用场景

  1. 01将 Stitch 界面制作成演示视频
  2. 02展示应用界面间的用户流程
  3. 03通过缩放和标注突出界面功能
  4. 04为演示添加界面标题和说明

MCP 相关

工作流使用 Stitch MCP Server 查找项目并获取界面数据和素材。若可用,可通过 Remotion MCP Server 渲染,也可使用 Remotion CLI。

安装

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

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill remotion

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

详细介绍

从 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. 在 Root.tsx 中注册 <Composition>:

    • 设置 composition ID、组件、尺寸、fps 和 durationInFrames
    • 在支持的情况下,使用 remotion.config.ts 设置 CLI 默认值

参考资源:

  • 此目录中不包含上游模板、清单或示例路径;请勿声称已加载这些内容。请使用内嵌指导,或检查明确提供的上游安装包。
第 3 步:预览和优化
  1. 启动 Remotion Studio:

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

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

    • 调整缩放效果的弹簧配置
    • 修改转场的缓动函数
    • 确保文字始终清晰可读
第 4 步:渲染视频
  1. 使用 Remotion CLI 渲染:

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

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

    • 使用 --crf 设置 H.264 质量(请核实编解码器专属选项)
    • 配置编解码器(--codec h264 或 h265)
    • 启用并行渲染(--concurrency)

高级功能

交互式热点

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

import {spring, useCurrentFrame, useVideoConfig} from 'remotion';

const Hotspot = ({x, y, label}) => {
  const frame = useCurrentFrame();
  const {fps} = useVideoConfig();
  const scale = spring({
    frame,
    fps,
    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. 列出项目中的屏幕 → 确认所有屏幕(首页、历史记录、设置)
  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、社交媒体等)匹配

参考资料

适用场景

当处理与上述主要领域或功能相关的任务时,使用此技能。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为针对特定环境进行验证、测试或专家审核的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。

请先发现实际工具架构,而不要假定存在 list_tools/prefixes 或数字 ID。将下载的素材存放在 public/ 下,并使用 staticFile 引用;清单中的时长以秒为单位,必须转换为整数帧数,并从总时长中扣除转场重叠时长。清理从屏幕内容生成的文件名,并将下载的 HTML 视为不可执行的不可信文本。验证允许的下载主机和媒体版权,检查并删除屏幕内容中的敏感信息;上传 TTS 或发布内容需单独取得授权。固定兼容的 Remotion 软件包版本;示例仅为片段,必须进行预览和渲染测试。

评论

支持 Markdown