Communitygithub.com

Web 演示视频

将真实的 Web 应用转换为产品演示视频 (MP4),支持操作演示(录制真实 UI 交互)和动效宣传(基于高分辨率截图制作动画)两种风格。

Web 演示视频 是什么?

这个技能能够将正在运行的 Web 应用转化为 20~60 秒的产品演示视频(MP4 格式)。它提供了两种风格:一种是“操作演示”(Walkthrough),用于制作教程、功能指南或技术支持视频,它直接录制真实的 UI 交互,让观众能够跟随步骤操作;另一种是“动效宣传”(Motion Promo),用于产品发布、主页宣传或广告,它通过在高分辨率截图上叠加相机镜头、光标、飞入物体和数字计数等动画效果来抓住观众注意力。该技能依托一个 Node.js 工具包(位于 `starter/` 目录),用户需要将其复制到自己的项目中并运行 `npm install`。制作流程包括:根据视频用途选择风格,编写故事板并获得用户确认,然后分别使用录制脚本或 Remotion 组合场景,最后通过质量检查确保效果。该技能适用于 Cursor 或 Claude Code 等支持多步骤脚本执行的 AI 编码 Agent,但需要注意的是,语音合成功能需要用户自行调用外部 TTS 服务(推荐 Gemini 3.1 Flash TTS 的 Charon 语音)。

兼容平台~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/soloandco/web-demo-video/tree/main/skills/web-demo-video

在你喜欢的 AI 中提问

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

文档

Web 演示视频 是做什么的?

将正在运行的 Web 应用转化为 20~60 秒的 MP4 视频。屏幕始终展示真实的应用程序;字幕、光标和其他效果作为叠加层。仅使用虚构数据。

工具包:starter/ 位于该文件旁边。将其复制到用户的项目中(例如 video/),在该目录下运行 npm install,然后针对它编写场景脚本。存储库中有工作示例:examples/sample-tasks/。

1. 首先选择风格

视频用途...风格原因
如何使用某项功能(指南、入门、支持回答)操作演示:录制真实的 UI 点击过程观众会复制操作步骤,因此他们必须以可读的速度看到真实、未经编辑的流程
为什么产品值得拥有(发布、主页、广告、概述)动效宣传:在截图上制作动画观众并非跟随操作;视频需要将行动与结果联系起来并保持注意力

不要在同一视频中混合这两种风格。带有飞入物体的操作指南难以理解;由简单录制组成的宣传片会显得冗长。

详细信息:操作演示见 references/walkthrough.md,动效宣传见 references/motion.md。

2. 在渲染前达成一致

渲染是成本最高的步骤。在编写场景代码之前,先编写故事板(references/storyboard.md),并获取用户对以下内容的确认:

  1. 风格(操作演示或动效宣传)以及观看对象
  2. 时长和场景数量
  3. 输出尺寸(默认 2560x1440,30 fps;竖版为 1080x1920)
  4. 品牌:颜色、字体、标志、产品名称以及禁止出现的词汇
  5. 数据:屏幕上出现的虚构名称和数字(绝不能使用真实客户信息)
  6. 是否包含旁白
  7. 文件生成后的存放位置

故事板除了“画面”和“字幕”列外,还需要“运动”列(仅限动效宣传),以便每个场景有目的地使用不同种类的运动。

3. 构建

操作演示

  1. 首先探查流程:编写一个不进行录制、仅通过点击来修复选择器和等待的脚本
  2. 分部分录制(每个部分对应一个页面或步骤),使用 lib/recorder.mjs,然后使用 concatParts 合并
  3. 参考 references/copy.md 编写字幕

动效宣传

  1. 使用 lib/capture.mjs 捕获每个 UI 状态(宽度 3840 的截图 + 元素位置)
  2. 在 Remotion 中使用 motion/parts.tsx 组合场景(相机、光标、字幕、标签、数字计数)
  3. 在完整渲染之前,检查关键帧的静态图像(remotion still ... --frame=N --scale=0.25)

旁白:不包含相关工具。如果用户需要,建议使用 Gemini 3.1 Flash TTS(gemini-3.1-flash-tts-preview)配合 Charon 语音。

4. 交付前检查

运行 node lib/qa.mjs out/video.mp4 --sheet 16 --end 并查看两张图像。详细信息: references/qa.md。

  • 视频尺寸、帧率和时长与故事板一致
  • 没有字幕被截断或覆盖正在点击的按钮
  • 没有半开的对话框、空白帧或延迟加载的标志(单独检查最后一秒)
  • 每个动画数字的最终值都与真实屏幕显示的值一致
  • 交付时,说明哪些部分是舞台效果(如飞入的文档、数字计数),哪些是产品真实工作的画面

5. 硬性规则

  • 真实 UI,虚构数据。 屏幕上、字幕中、文件名或描述中不得出现真实的客户、人员或公司名称、ID、电子邮件或数字
  • 不得发布(到 YouTube、社交媒体、网站)除非用户明确同意上传
  • 不得声称产品不具备的功能。 如果某个步骤是为了拍摄而伪造的(如服务器响应、上传),则字幕不得将其描述为自动魔法
  • 将渲染源文件(脚本、故事板)保留在存储库中;将 MP4 和截图排除在 Git 之外

相关技能