Communitygithub.com

noamdorr/saas-product-demo-video

使用 Remotion 制作 20-45 秒的 SaaS 产品演示视频。当用户想要制作产品影片、营销短片、解说视频、发布视频或 LinkedIn/Instagram 应用视频时使用。

saas-product-demo-video 是什么?

该技能提供了一个完整的端到端工作流程,用于在 Remotion 中制作与节拍同步的 SaaS 产品演示视频。它涵盖了无声电影风格、横向演示、纵向 Reels 以及带有拼贴 B-roll 图层的电影。核心在于三个支柱:资产导入、参考视频氛围分析和音轨节拍同步。该技能支持多种场景,包括用户没有现成脚本或产品 UI 的情况,可以生成示意图 UI。它还能与 Super Powers 插件集成,提供更高效的工作流,如 HTML 模拟、规划文档和子代理循环。最终输出是一个高质量、专业感的视频,适合营销、发布和社交媒体宣传。

兼容平台~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/noamdorr/saas-product-demo-video/tree/HEAD/saas-product-demo-video

在你喜欢的 AI 中提问

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

文档

SaaS 产品演示视频

用于在 Remotion 中交付与节拍同步的 SaaS 产品影片的端到端工作流程。涵盖无声电影风格、与节拍锁定的横向演示、纵向 Reels 以及带有拼贴 B-roll 图层的影片。

该技能对三件事有明确的倾向性:素材、氛围、节拍。跳过其中任何一项,你都会制作出一个泛泛的、类似 Canva 的动态图形短片,看起来与其他 SaaS 演示别无二致。这种纪律性才是造成差异的关键。

这些是强烈建议而非硬性规则。大多数制作会遵循它们;有些会有意打破(例如,在画外音驱动的影片中,节拍同步可能会与 VO 冲突)。当你打破规则时,请确保是有意识地这样做。


前置条件

开始前,请确保以下条件已就绪。第一条是必须的;其余是强烈建议,并附有记录在案的备用方案。

  1. 已安装 Remotion(必须)。@remotion/cli 4.0.x + @remotion/google-fonts + React 19。有关最小化的 package.json / tsconfig.json / remotion.config.ts,请参阅 references/project-scaffold.md - 切勿在已有的 git 仓库内运行 npx create-video(它会在箭头键提示处阻塞)。

  2. Super Powers 插件(强烈建议,非必须)。 当可用时,此技能会编排 superpowers:using-superpowers、superpowers:brainstorming(含可视化伴生工具)、superpowers:writing-plans 和 superpowers:subagent-driven-development。它们提供浏览器中的 HTML 模拟用于布局决策、正式的计划文档,以及实现者+审查者的子代理循环。

    如果未安装 Super Powers,该技能仍然有效 - 工作流程会变得更偏向对话式,速度也稍慢。头脑风暴变为内联对话(无浏览器伴生工具);计划直接写在聊天中;场景通过内联方式而非派生子代理来实现。三个支柱(素材/氛围/节拍)以及 B-roll、示意图 UI、点击定位、写作风格和 scripts/ 中的脚本都同样工作。不要因为缺少插件而拒绝工作 - 请适应并继续。

  3. Python 3 + librosa 可用。 节拍检测运行 scripts/detect-beats.py,该脚本导入 librosa。如果未安装,请运行 pip install --break-system-packages librosa numpy soundfile 并告知用户 - 不要偷偷进行。

  4. 用于参考视频分析(支柱 2): 该技能按优先级顺序支持三种路径。使用可用的最高级路径 - 完整的检测逻辑请参阅 references/reference-video-vibe.md。

    1. gemini CLI 在 PATH 中(官方 Google CLI 或社区封装工具如 gemini-yt)。使用提示词 + YouTube URL 作为参数运行。
    2. GEMINI_API_KEY 已设置在环境变量或 .env 文件中。使用该技能的 curl 封装脚本 scripts/analyze-reference-video.sh。
    3. 以上皆无 - 回退到手动复制粘贴到 Google AI Studio。虽然麻烦但始终有效;质量相当。

在新会话中,将运行 references/prereq-check.md 作为你的第一步。


三个支柱

这些是高杠杆活动。为了“节省时间”而跳过其中一个,几乎总是会在后期花费更多时间。

支柱 1 - 素材导入入门

在进行任何其他操作之前,请运行 assets/prompt-templates/asset-intake-questionnaire.md 中的结构化问卷。它会询问:

  • 宽高比(16:9 横向、9:16 纵向或两者并行 - 如果两者都需要,请参阅 references/vertical-port.md)
  • 时长(秒,建议 20-45 秒)
  • Logo - 首选 SVG。如果只有 PNG,则捕获其原始尺寸以防止缩放时像素化。
  • 品牌十六进制颜色(主强调色 + 3-6 种辅助柔和色)
  • 字体栈(必须全部来自 Google Fonts)
  • 文案/脚本 - 优先使用用户提供的草稿而非自行生成。如果他们没有脚本,请参阅 references/script-development.md。
  • 画外音(可选)
  • 配乐文件 - 节拍同步必需。如果用户没有,请从免版税素材库中挑选。

完整的素材导入流程,包括部分素材的最小可行集、复制导入时的命名规范以及素材放大像素化检查,请参考 references/asset-intake.md。

支柱 2 - 参考视频氛围工作流

在编写场景之前,向用户索要 2-3 个 YouTube 参考视频,他们想要达到其视频的氛围。然后为每个视频生成一份导演层面的分解。

支持两种路径(详见 references/reference-video-vibe.md):

  • 自动化(首选,当可用时) - 如果用户设置了 GEMINI_API_KEY,则为每个视频运行 scripts/analyze-reference-video.sh <youtube-url> <slug>。通过 curl 使用 Gemini Pro Preview。每个视频约需 30 秒。输出文件位于 references/gemini-<slug>.md。
  • 手动(始终有效) - 打开 aistudio.google.com,将 scripts/reference-video-prompt.md 中的提示词与 YouTube URL 一起粘贴,将结果复制回文件。虽然麻烦,但能产生同样可用的输出。当 API 不可用时使用此方法。

导演动词词汇表(推进、甩镜、V 型剪拉回、墨水遮罩、匹配剪接缩放)是最具承载力的输出 - 它为你提供了可以围绕构建的特定运动基元。

支柱 3 - 配乐节拍同步

场景边界应落在军鼓上(修辞上的“鼓点”感觉)。场景内部事件(点击、卡片落地、计数器启动)应落在该场景内的底鼓或军鼓上。

流程:

  1. 运行 scripts/detect-beats.py <soundtrack.mp3> --fps 30 --out beats.json。输出 BPM、第一底鼓帧、军鼓时间戳+帧。
  2. 导入到一个单一的时序常量对象中(参见 assets/code-templates/theme-v2.ts)。每个场景的 <Sequence from={...} durationInFrames={...}> 都从这里拉取值。
  3. 在第 6 阶段(场景构建后)之后,针对 beats.json 和一个场景内事件列表运行 scripts/align-internal-events.py,将它们在 ±6 帧范围内调整到最近的节拍上。这是继初始渲染之后第二高杠杆的迭代 - 观众会感觉到“节奏有时不对劲”,但无法明确指出原因。
  4. 使用 isSnare(n) / isKick(n) 辅助函数在开发模式下进行断言。
  5. 针对任何 TypedText/TypedChars 运行 scripts/check-typing-budget.py,以验证其是否适合场景时长。在交付前截断屏幕外打字。

完整的数学计算、辅助函数、内部事件对齐以及打字预算检查,请参阅 references/beat-sync.md。


辅助能力 - 当基础功能不够用时

这些涵盖了超出标准的“纯动态图形,仅录制屏幕截图”SaaS 演示之外的情况。当用户的情况需要时,请阅读相关参考。

脚本开发 - 当用户没有脚本时

大多数用户进来时只有一个模糊的产品概念,而不是一个完整的逐屏脚本。references/script-development.md 提供了一个结构化的对话流程,可以生成一个四幕大纲 + 锁定的逐屏脚本 + 锁定的文案参考页面,随时可以输入到规范文档中。

B-roll 整合 - 当影片使用实拍或拼贴图层时

如果用户有素材视频、拼剪辑片段或任何他们想要作为背景层的视频,请使用 references/b-roll-integration.md 和 BRollLayer 模板。B-roll 可以是全不透明度的背景,也可以是低不透明度的纹理;该基元处理裁剪、淡入淡出、混合模式和 FPS 校正时序。

(此技能的先前版本建议将实拍工作发送到 Premiere/DaVinci。当 B-roll 被用作动态图形下的图层时,这是错误的 - Remotion 能很好地处理这一点,将制作保留在一个工具中是一个生产力上的胜利。)

示意图 UI 保真度 - 当产品没有真实 UI 可录制时

如果产品是一个 Chrome 扩展、一个 API 或处于早期阶段,并且没有真实的产品 UI 可以截图,references/schematic-ui-fidelity.md 涵盖了如何设计出读起来很精致但又不会侵犯真实平台(LinkedIn、Gmail、Slack)的示意图 UI。三种参考模式:个人资料卡片、邮件编辑器、API 面板 - 代码模板在 assets/code-templates/Schematic*.tsx 中。

点击定位 - 排名第一的迭代痛点

光标点击错失按钮是所有制作中最常见的用户投诉。references/click-positioning.md 涵盖了三种方法(Refs、计算位置常量、调试叠加层) - 请在初期选择一种。犯此错误的代价是每个场景需要多次完整的重新渲染周期。

写作风格 - 保持用户面向的文案中不带有 AI 痕迹

长破折号、弯引号和某些措辞习惯是“AI 生成”的有力证据。references/writing-style.md 是默认的风格指南,其中包含一个渲染前的 grep 检查,可以捕获这些问题。如果用户有自己的品牌声音指南,则优先使用。


理想顺序

完整的端到端流程。带注释的版本及理由请参阅 references/ideal-sequence.md。

  1. 先收集输入,最后写代码。 运行素材导入问卷。
  2. 开发脚本(如果用户没有)- references/script-development.md。
  3. 生成参考视频分解 - 通过 scripts/analyze-reference-video.sh 自动化进行,或通过 AI Studio 手动进行。
  4. 检测节拍并编写时序常量对象。 scripts/detect-beats.py → theme-v2.ts。每个场景的起点都源自节拍。
  5. 手动搭建 Remotion 项目。 最小的 package.json / tsconfig.json / remotion.config.ts。切勿在 git 仓库内运行 npx create-video。
  6. 在 Root.tsx 中注册每个场景的调试组合。 必不可少的速度提升。预览一个 5 秒的场景比预览整个主片快 30 倍。
  7. 在 Root.tsx 顶层加载所有字体,使用 subsets: ["latin"]。
  8. 在组合 ID 中使用连字符(v2-Scene06,切勿使用 v2_Scene06)。
  9. 调用 superpowers:brainstorming 及其可视化伴生工具 进行样式/布局决策。HTML 模拟每次都胜过文字描述。
  10. 编写规范文档。 docs/superpowers/specs/YYYY-MM-DD-<name>-design.md。如果需要任何示意图 UI,请包含其保真度部分。
  11. 自我审查规范,然后由用户批准。 在得到绿灯前不编写代码。
  12. 调用 superpowers:writing-plans。 在派发前进行计划模板规范性检查(参见 references/project-scaffold.md)。
  13. 先构建动画基元(根据需要包括 TypedText、MaskReveal、PopIn、Cursor、ZoomPunch、FloatingElements、BRollLayer、Counter、IceCrack)。然后是示意图 UI 卡片。然后是场景。最后是主片。
  14. 调用 superpowers:subagent-driven-development。 将子代理批次限制在每次派发 3-4 个文件 - 较大的批次有时会在任务中途耗尽上下文。参见 references/iteration-playbook.md。
  15. 单独点渲染场景 1。 确立风格。在继续之前获得用户批准。
  16. 分波次迭代。 将每个波次的修复限制在 5-8 个。在基线渲染完成后运行一次内部事件对齐处理 - 仅此一次处理就能显着收紧节奏。
  17. 以发布质量进行主片渲染。 --crf=14 --image-format=png(高清)或 --crf=15 --image-format=png --scale=2(4K)。参见 references/render-export.md。
  18. 以 0.5 倍速对照节拍图进行点查。

索引参考

references/ 目录包含深度内容。仅加载你当前阶段所需的部分。

  • ideal-sequence.md - 完整的带注释流程及理由
  • prereq-check.md - 开始前需要验证的内容
  • asset-intake.md - 完整导入流程、部分素材回退、素材放大检查、命名规范
  • script-development.md - 当用户没有脚本时的逐屏方法论
  • reference-video-vibe.md - Gemini 分析协议(API / CLI / AI Studio 路径)
  • beat-sync.md - 节拍网格数学、场景边界规则、内部事件对齐、打字预算检查
  • project-scaffold.md - 最小 Remotion 设置、提交清单、计划模板规范性、必备 .gitignore
  • animation-patterns.md - TypedText、MaskReveal、PopIn、ZoomPunch、FloatingElements 及扩展
  • b-roll-integration.md - BRollLayer 模式、不透明度/混合处理、渲染性能
  • schematic-ui-fidelity.md - 设计出读起来精致的假 UI
  • click-positioning.md - 确保光标点击落在正确目标上的三种方法
  • writing-style.md - 在屏幕文案中应避免的长破折号和其他 AI 痕迹
  • cursor-math.md - 热点偏移、关键点、比例变换
  • iteration-playbook.md - 波次结构、批次审查、子代理批处理、Studio 热重载重启
  • render-export.md - 高清/4K 渲染命令、CRF 理由
  • gotchas.md - 组合 ID 下划线、字体警告、斜体加载、MaskReveal 缩放陷阱
  • vertical-port.md - 9:16 Reels 移植规范

素材

  • assets/prompt-templates/ - 用于素材导入、规范文档、节拍表的填空模板
  • assets/code-templates/ - 经过实战检验的组件(主题常量、缓动函数、Cursor、MaskReveal、TypedText、PopIn、ZoomPunch、FloatingElements、BRollLayer、Counter、IceCrack、SchematicProfileCard、SchematicEmailComposer、SchematicApiPanel、Act2Master、Act2MasterVertical)

脚本

  • scripts/detect-beats.py - 由 librosa 驱动的节拍追踪。输出 BPM、第一底鼓、在目标帧率下的军鼓/底鼓帧。
  • scripts/analyze-reference-video.sh + scripts/reference-video-prompt.md - 用于 YouTube 导演级别分解的 Gemini Pro 封装。
  • scripts/align-internal-events.py - 在 ± 容差帧内按节拍对齐场景内事件。
  • scripts/check-typing-budget.py - 在渲染前验证 TypedText/TypedChars 是否适合场景时长。

何时不应使用该技能

  • 对现有 Remotion 项目进行深度迭代。 如果用户已经对影片进行了 20 次以上提交,并且要求进行第 N+1 波调整,请不要重新运行导入。加载 references/iteration-playbook.md 和 references/beat-sync.md 并继续。
  • 非 SaaS 演示。 活动回顾、推荐集锦、教程录屏 - 节拍同步 + 产品 UI 卡片模式不适用。
  • 以纪录片或讲话镜头为主题。 此技能将 B-roll 作为动态图形下的图层处理。如果实拍镜头是影片的主题(采访、开箱、导览),请使用非线性编辑器,如 Premiere、DaVinci 或

…

[因翻译需要而截断]

相关技能