Communitygithub.com

产品发布视频技能

通过 URL、简介或脚本,使用 HyperFrames(HTML→MP4)创建产品发布视频。当用户想要包含产品本身视觉元素的产品发布视频、站点导览、社交媒体短片或产品营销推广视频时使用。时长最多约 3 分钟(最佳 30-90 秒)。教授 HyperFrames 制作流程:规划 → 编写 HTML → 配置可 seek 动画 → 添加媒体 → 检查 → 预览 → 渲染。

产品发布视频技能 是什么?

该技能为 AI 智能体提供端到端的能力,从 URL、简短描述或完整脚本出发,自动生成专业的产品发布视频。它基于 HyperFrames 框架,该框架利用 LLM 擅长编写 HTML 的优势,将 HTML 组合渲染为精准的 MP4 视频。工作流程清晰:首先规划 3-6 个场景及时间分配,然后编写符合特定组合契约的 HTML 结构,使用 GSAP 或 CSS 关键帧创建可确定性回放的 seekable 动画,并集成图片、背景视频和音频。关键步骤包括使用 `hyperframes check` 和 `lint` 验证格式,通过 `hyperframes preview` 实时预览动画和时序,最后用 `hyperframes render` 生成最终 MP4。该技能适用于产品发布、站点导览、社交媒体短片(TikTok/Reels/Shorts)及营销推广视频,但明确不适用于真人内容、直播、口播采访或纯解释性视频。其核心优势在于智能体原生:LLM 书写 HTML,HyperFrames 确保帧级精确渲染,并通过反合理化表格引导用户避免常见误区,如跳过 lint 检查或使用跨场景交叉淡入淡出。支持的平台包括 Claude Code、Cursor 等 CLI 或 IDE 智能体环境。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/oyi77/1ai-skills/tree/HEAD/content/hyperframes-product-launch-video

在你喜欢的 AI 中提问

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

文档

概述

该技能可编排产品发布视频——主镜头、功能标注、时间节奏——作为 HyperFrames 组合。当新版本需要一段紧凑、可品牌化的公告视频时使用。它能根据你提供的产品素材将最终 MP4 渲染出来。

HyperFrames——产品发布视频

通过编写 HTML 组合来创建产品发布视频,HyperFrames 将其渲染为确定的 MP4。智能体原生视频流程:LLM 编写 HTML(它们的第一语言),HyperFrames 通过无头 Chrome + FFmpeg 渲染帧级精确视频。

使用时机

  • 用户想从 URL、简介或脚本制作产品发布视频
  • 用户想制作包含产品本身视觉的站点导览/展示
  • 用户想制作带有动态字幕和品牌的社交媒体短片(TikTok/Reels/Shorts)
  • 用户想制作带有动画叠加和音乐的营销/推广视频
  • 用户说“给我做个视频”并提供产品 URL 或描述

不适合的情况

  • 用户想要真人出演/UGC/演播室内容(需要摄像机,而非 HTML)
  • 用户想要直播/直播带货(需要 RTMP 推流)
  • 用户想要头部访谈类视频(请使用 hyperframes-embedded-captions 或 hyperframes-talking-head-recut)
  • 用户想要无产品/URL 的纯解释视频(请使用 hyperframes-faceless-explainer)
  • 用户想要演示/幻灯片(请使用 hyperframes-slideshow)

工作流程

0 · 初始化项目

npx hyperframes init my-launch-video
cd my-launch-video

这会创建包含 index.html、package.json 以及已配置 HyperFrames CLI 的项目脚手架。

1 · 规划视频

  • 输入: 产品 URL、简介或脚本
  • 输出: 3-6 场景故事板及时间分配(总计 30-90 秒为最佳)
  • 预算: 标题 ≤2 秒,结尾 ≤3 秒,中间场景约 8-12 秒每个
  • 选择设计语言: 浏览 hyperframes.heygen.com/design 中的 frame.md 模板

2 · 编写 HTML 组合

组合契约:

<!doctype html>
<html lang="en">
  <body>
    <div
      id="main"
      data-composition-id="intro"
      data-start="0"
      data-duration="15"
      data-width="1080"
      data-height="1920"
      data-fps="30"
    >
      <div
        class="clip"
        data-start="0"
        data-duration="5"
        data-track-index="0"
      >
        <!-- 场景内容 -->
      </div>
    </div>
  </body>
</html>

关键属性:

  • data-composition-id:组合的唯一 ID
  • data-start / data-duration:以秒为单位的起止时间
  • data-width / data-height:视口尺寸(9:16 为 1080×1920)
  • data-fps:帧率(标准为 30)
  • class="clip":标记计时元素
  • data-track-index:图层顺序(数值越大越靠上)

3 · 配置可 seek 动画

使用 GSAP(推荐)、CSS 关键帧或 WAAPI。所有动画必须可 seek(确定性——相同时间点始终渲染相同帧)。

GSAP 模式(推荐):

const tl = gsap.timeline({ paused: true });
tl.to("#title", { opacity: 1, y: 0, duration: 0.8, ease: "power4.out" }, 0.5);
tl.to("#image", { scale: 1, opacity: 1, duration: 1.2, ease: "power3.out" }, 1.0);
window.__timelines = { main: tl };

CSS 关键帧模式:

@keyframes fadeInUp {
  from { transform: translateY(40px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.animate-in {
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

4 · 添加媒体

  • 图片: 下载到 public/ 目录,通过 staticFile() 或相对路径引用
  • 视频背景: 放入 assets/,通过 data-loop 循环
  • 音频/背景音乐: 通过 <audio data-start="0" data-duration="15" src="./bgm.mp3"> 添加
  • 配音: 通过 TTS 生成,将字幕与单词时间戳对齐

5 · 检查并验证

npx hyperframes check        # 验证组合契约
npx hyperframes lint         # 检查常见错误

继续前修复所有错误。警告可接受但应审查。

6 · 预览

npx hyperframes preview      # 打开 Hyperframes Studio 并启用 HMR

在原始组合页面上通过 __player.seek(time) 抽查 3-4 个时间点。验证:

  • 动画在正确时间触发
  • 切换处无白闪(不透明舞台背景)
  • 字幕可见且可读
  • 音频电平平衡

7 · 渲染

npx hyperframes render --output launch-video.mp4

验证输出:

ffmpeg -ss 3 -i launch-video.mp4 -frames:v 1 frame-3s.png  # 检查字幕
ffmpeg -ss 15 -i launch-video.mp4 -frames:v 1 frame-15s.png # 检查场景

反合理化表

合理化现实
“我就用视频编辑器”GUI 编辑器不是智能体原生;HTML 才是 LLM 最擅长的
“我跳过 lint 步骤”Lint 能捕捉破坏渲染的组合契约错误
“我用 Remotion 替代”Remotion 需要 React 推理;对智能体来说 HTML 更简单
“我加入空闲动画来填充时间”禁止空闲抖动——每个阶段必须有功能(参见 hyperframes-cut-the-curve)
“我以 42% 为中心放置内容以预留字幕空间”字幕是叠加层——以真实中心居中(y = H/2)
“我在场景之间使用交叉淡入淡出”交叉淡入淡出没有载体——使用 cut-the-curve 作为默认边界
“我写一个大 HTML 文件,不用分场景”场景是组合的基本单元——每个场景都有自己的 clip 包裹层
“我跳过预览直接渲染”预览能捕捉浪费渲染时间的时序错误

代码示例

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <style>
      * { margin: 0; padding: 0; box-sizing: border-box; }
      html, body { width: 100%; height: 100%; overflow: hidden; background: #0a0a0a; }
      #main {
        position: relative;
        width: 1080px;
        height: 1920px;
        overflow: hidden;
      }
      .scene {
        position: absolute;
        inset: 0;
        opacity: 0;
        transition: opacity 0.5s ease;
      }
      .scene.active { opacity: 1; }
      .hook-bg {
        background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        padding: 80px;
        text-align: center;
        color: white;
        font-family: system-ui, sans-serif;
      }
      .hook-text {
        font-size: 72px;
        font-weight: 800;
        line-height: 1.1;
        transform: translateY(40px);
        opacity: 0;
      }
      .animate-in {
        animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
      }
      @keyframes fadeInUp {
        from { transform: translateY(40px); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
      }
    </style>
  </head>
  <body>
    <div
      id="main"
      data-composition-id="product-ad"
      data-start="0"
      data-duration="15"
      data-width="1080"
      data-height="1920"
      data-fps="30"
    >
      <div class="scene hook-bg" data-start="0" data-duration="5" data-track-index="0">
        <h1 class="hook-text animate-in" data-start="0.5" data-duration="4">
          产品名称
        </h1>
      </div>
    </div>
    <script>
      // 通过 IntersectionObserver 或手动计时激活场景
      const scenes = document.querySelectorAll('.scene');
      scenes.forEach(scene => {
        const start = parseFloat(scene.dataset.start);
        const duration = parseFloat(scene.dataset.duration);
        setTimeout(() => scene.classList.add('active'), start * 1000);
        setTimeout(() => scene.classList.remove('active'), (start + duration) * 1000);
      });
    </script>
  </body>
</html>

验证清单

  • 组合通过 npx hyperframes check 验证,0 个错误
  • 所有场景都有 data-start、data-duration、data-track-index
  • 动画是 seekable 的(确定性,不依赖墙钟时间)
  • 预览在 3 个以上抽查时间点显示正确的时序
  • 渲染的 MP4 无白闪、冻结帧或缺失字幕
  • 音频电平平衡(如需已应用配音压低)
  • 输出分辨率符合目标(9:16 为 1080×1920,16:9 为 1920×1080)

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

oyi77/1ai-skills

Turn a weekly changelog .md into a finished branded changelog video using HyperFrames. Use when the user provides a changelog/digest markdown and wants the weekly video, or says 'changelog video'. Self-contained — fonts, background, lexicon, and scripts ship in the skill. Produces square 1080, ~45-60s videos with animated brand mock-UIs.

oyi77/1ai-skills

The transition technique catalog for HyperFrames videos — five velocity-matched SEAMS (zoom-through, inverse zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus in-scene techniques (waterfall entry, nudge curve). Covers partial-travel velocity matching, Z scale-sign rule, size-scaled blur, the 10/65/25 slide ratio, and the 2-3 transition budget. Read before authoring any transition, text-beat handoff, or kinetic text entry.

oyi77/1ai-skills

Add captions/subtitles to talking-head or launch videos using HyperFrames. Use when the user wants embedded captions, verbatim caption rails, or cinematic text behind the subject. Covers the drop/rail/embed caption model, the overlay law (captions are NOT a reserved band), matte occlusion for embedded climaxes, and word-timestamp alignment from TTS output.

oyi77/1ai-skills

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video using HyperFrames. Use when the user wants a topic explainer, concept breakdown, how-to, or listicle with no product/website to capture. Every visual is invented per scene (typography, abstract graphics, diagrams, data-viz). Not a video built from a website (use hyperframes-product-launch-video).

oyi77/1ai-skills

The fallback HyperFrames workflow for anything that doesn't fit other skills — longer multi-scene pieces, brand/sizzle reels, title cards, static loops, freeform compositions. Input- and length-agnostic. Also the home of companion mode (co-create with the full toolbox). Use when no other HyperFrames skill matches, or when the user wants a freeform video.

oyi77/1ai-skills

Create short, unnarrated, design-led motion graphics (~under 10s) using HyperFrames. Use when the user wants kinetic type, stat/chart hits, logo stings, lower-thirds, animated tweets/headlines, or transparent overlay motion graphics. MP4 or transparent overlay output. Teaches seek-safe keyframe authoring and the 2-3 transition budget rule.

oyi77/1ai-skills

Turn a music track into a beat-synced HyperFrames video — lyric, slideshow, or kinetic promo. Use when the user provides an audio file, a video to pull audio from, or a mood brief for generated music. Music drives pacing. Teaches beat-map extraction, section-based scene planning, and audio-reactive visuals.

oyi77/1ai-skills

The Video Production Manager — manages ALL video production under 1ai-content. Delegates to HyperFrames, Remotion, AI video, and FFmpeg based on the task. Has memory via 1ai-hub brain, follows 1ai-rules, and reports to Content Director. Use when the user says 'make a video', 'create video', 'edit video', 'video strategy', or needs any video production work.

oyi77/1ai-skills

Agent skill at content/video/gen/SKILL.md

oyi77/1ai-skills

Use when track portfolio company KPIs, variances, returns analysis. Use when user says "monitor portfolio", "track KPIs", "portfolio returns".

oyi77/1ai-skills

Use when go-to-market planning — launch sequencing, channel strategy, audience building, PR outreach. Use when planning product launches, building launch checklists, or coordinating multi-channel campaigns.

oyi77/1ai-skills

Use when portfolio manager — capital allocation, risk management, and performance metrics tracking for trading strategies.

相关技能