Community编程与开发github.com

mastra-ai/mastra-demo-skill

创建专业产品演示视频的技能,集成浏览器自动化录制、ElevenLabs 语音合成和 Remotion 视频合成。

mastra-demo-skill 是什么?

Mastra Demo Skill 是一款面向 AI 代理(如 Claude Code、Cursor 等)的实用技能,旨在帮助开发者快速创建高质量的产品演示视频。它通过整合三种关键技术:基于 claude-in-chrome MCP 的浏览器自动化(用于录制 GIF 动图)、ElevenLabs 语音合成(生成专业画外音)和 Remotion 视频框架(最终合成视频),将创建演示视频的工作流程系统化。用户只需通过一系列命令(如 `/mastra-demo:init` 初始化项目、`/mastra-demo:script` 编写脚本、`/mastra-demo:record` 录制 GIF、`/mastra-demo:audio` 生成音频、`/mastra-demo:compose` 合成、`/mastra-demo:render` 导出)即可完成从零到最终视频的完整制作。该技能还强调叙事流畅性,要求脚本包含连贯的旁白,并提供丰富的浏览器操作(导航、点击、输入等)与语音设置选项,支持 ElevenLabs 的多语种模型。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add mastra-ai/mastra-demo-skill

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Mastra Demo Skill

通过组合以下工具,创建专业的产品演示视频:

  • 浏览器自动化:用于录制 GIF(通过 claude-in-chrome MCP)
  • ElevenLabs:画外音生成
  • Remotion:视频合成

命令

命令用途
/mastra-demo:init <名称>从模板创建新的演示项目
/mastra-demo:script生成或验证 DEMO_SCRIPT.md
/mastra-demo:record录制浏览器操作并保存为 GIF
/mastra-demo:audio通过 ElevenLabs 生成画外音
/mastra-demo:compose构建 Remotion 合成
/mastra-demo:render导出最终视频
/mastra-demo:status显示进度和后续步骤

快速开始

# 1. 创建新演示项目
/mastra-demo:init my-awesome-demo

# 2. 编辑 DEMO_SCRIPT.md 以加入您的脚本内容(或通过交互方式生成)
/mastra-demo:script

# 3. 为每个片段录制浏览器 GIF
/mastra-demo:record

# 4. 生成画外音
/mastra-demo:audio

# 5. 构建视频合成
/mastra-demo:compose

# 6. 渲染最终视频
/mastra-demo:render

先决条件

  • claude-in-chrome MCP:用于录制 GIF 的浏览器自动化扩展
  • ElevenLabs API 密钥:用于画外音生成
  • Node.js 18+:用于 Remotion
  • ffprobe:用于音频时长检测(随 ffmpeg 自带)

项目结构

由本技能创建的演示项目具有以下结构:

my-demo/
├── .env                    # ELEVENLABS_API_KEY
├── .mastra-demo-state.json # 执行状态
├── DEMO_SCRIPT.md          # 包含各片段的脚本
├── package.json            # Remotion 依赖
├── public/                 # 资源文件(GIF、音频)
│   ├── segment-01.gif
│   ├── segment-01.mp3
│   └── ...
├── out/                    # 渲染输出
│   └── demo.mp4
└── src/
    ├── Root.tsx
    ├── DemoVideo.tsx
    └── scenes/

脚本格式

DEMO_SCRIPT.md 用于定义您的演示:

# Demo: 功能名称

## 旁白
先以连续段落书写完整的故事。
这有助于确保各片段之间的自然流畅。

## 设置
fps: 30
voice: Daniel

## 标题
text: "功能名称"
subtitle: "标语"
duration: 5s

## 片段

### segment-01-intro
url: http://localhost:4111
voiceover: |
  这是与上述旁白自然衔接的
  开场旁白。
actions:
  - navigate: http://localhost:4111
  - wait: 2s
  - find: "登录按钮"
  - click: found element

## 片尾
heading: "快速开始"
command: "npx create-mastra@latest"
links:
  - mastra.ai/docs

叙事流程

优秀演示的关键在于叙事流畅性。即使我们录制的是单独的 GIF 和音频片段,画外音也必须讲述一个连贯的故事。

良好的过渡:

  • "现在我们已经登录了..."
  • "精彩的部分来了..."
  • "回到 Mastra Studio,差异立刻显现..."

不良的习惯:

  • 没有上下文的生硬片段切换
  • 项目符号式的旁白
  • 片段之间缺乏连接

浏览器操作

录制时可用的操作:

操作格式示例
导航navigate: <url>navigate: http://localhost:4111
等待wait: <时间>wait: 2s
查找find: "<查询>"find: "登录按钮"
点击click: <目标>click: found element
输入type: "<文本>"type: "Hello world"
滚动scroll: <方向>scroll: down

语音设置

推荐用于专业演示的 ElevenLabs 设置:

  • 语音:Daniel、Brian、George 或 Chris
  • 模型:eleven_multilingual_v2
  • 稳定性:0.5
  • 相似度增强:0.75

参考资料

详细文档请参阅:

  • references/script-format-reference.md - 完整的 DEMO_SCRIPT.md 格式
  • references/gif-recording-reference.md - 浏览器自动化模式
  • references/audio-generation-reference.md - ElevenLabs 集成

模板

templates/ 目录包含 Remotion 项目文件:

  • 场景的 React 组件(标题、DemoGif、片尾)
  • 浏览器框架组件
  • 音频生成脚本
  • 包配置

相关技能