返回博客列表

HyperFrames:写 HTML 就能出视频,HeyGen 开源的 Agent 视频框架

2026-10-13T21:20:00+08:00
HyperFramesHeyGenAI AgentHTML视频渲染开源项目

HyperFrames:写 HTML 就能出视频,HeyGen 开源的 Agent 视频框架

一句话概括这个项目:Write HTML. Render video. Built for agents.——写 HTML,渲出视频,专为 agent 而生。

这是 HeyGen 开源的 HyperFrames。它做的事情说起来很简单:把一段 HTML、CSS、媒体素材加上"可寻址的动画",编译成一段确定性的 MP4。但这句话背后的取舍很有意思——它没有赌 React,没有赌某个专有的时间轴格式,而是把赌注全押在"HTML 本身就是最好的视频描述语言"上。

理由也很直接:AI agent 本来就会写 HTML。与其教它一套新的 DSL,不如让它继续写它最熟的东西。

这个项目在 GitHub 上已有 6.2 万 Star,Apache 2.0 协议,TypeScript 编写。下面把它拆开看一遍。

目录

一、它到底在解决什么问题

传统的程序化视频渲染(code-to-video),主流路线是 Remotion:用 React 组件描述画面,配合打包器构建,再用 headless Chrome 逐帧截图、FFmpeg 合成。

这套方案很强,但有两个"摩擦点":

  1. 它要求你会 React。对于一个只想把一张数据图做成 10 秒短片的场景,写一个 React 项目、装一堆依赖、跑构建,成本偏高。
  2. 它不天然适合 agent。AI coding agent 写 JSX 也会写,但一个完整的 React 工程涉及打包、依赖解析、目录结构,出错的面积比单文件 HTML 大得多。

HyperFrames 的赌注就是针对这两点:用纯 HTML 做描述层,去掉构建步骤,让一份 index.html 直接能播、能渲。

二、核心思路:把视频"写"成 HTML

HyperFrames 的 composition 就是一个 HTML 文件,时间信息全部由 data-* 属性承载。

Launch day

这段代码几乎是自解释的,但有几个设计点值得单独拎出来讲。

2.1 时间线不是"时间轴对象",而是 DOM 属性

  • data-start / data-duration:这个元素在时间轴上的位置。
  • data-track-index:它落在第几条轨道上(相当于图层)。
  • class="clip":标记这是一个参与合成的片段。
  • data-composition-id:整个舞台的标识。

好处是一切都可读、可 diff、可被程序解析。一个 agent 生成这份 HTML 后,人类可以直接打开浏览器看效果,不需要跑任何构建。

2.2 动画必须"可寻址"(seekable)

这是整个框架最关键的技术约束。视频渲染不像网页播放——渲染器需要跳到任意一帧并让画面呈现那一帧应有的状态。这要求动画不能依赖"真实时钟",必须能被"问"出第 t 秒长什么样。

HyperFrames 的约定是:把时间线挂到 window.__timelines.<compositionId>。渲染器拿到这个对象后,就能 seek 到指定时间点再去截图。README 里也专门点出这是它相对 Remotion 的差异点之一——"library-clock animations 在 HyperFrames 里必须 seekable, frame-accurate"。

2.3 渲染管线:headless Chrome 逐帧 + FFmpeg 编码

flowchart TB
  Author["Author / AI agent writes HTML"] --> Compose["Composition: data-* timing + class=clip"]
  Compose --> Preview["hyperframes preview (live reload in browser)"]
  Compose --> Lint["hyperframes lint / check"]
  Lint --> Render["hyperframes render"]
  Render --> Chrome["Headless Chrome seeks each frame"]
  Chrome --> Ffmpeg["FFmpeg encodes frames"]
  Ffmpeg --> Mp4["Deterministic MP4"]
  Compose --> Adapters["Frame adapters: GSAP / CSS / Lottie / Three.js / Anime.js / WAAPI"]
  Adapters --> Chrome
  Render -.-> Lambda["AWS Lambda distributed render (optional)"]
  Render -.-> Cloud["HeyGen cloud render (optional)"]

因为每一帧都是"寻址 + 截图"得到的,而不是实时录屏,所以同样的输入永远产出同样的视频。这一点对 CI、回归测试、自动化流水线非常关键——README 里甚至用 Git LFS 存了约 240MB 的 output.mp4 作为黄金基线,用来做逐帧回归比对。

三、三种上手方式

HyperFrames 同时照顾了三类用户:AI coding agent、想快速试的人、要接进自己系统的工程师。

3.1 给 AI coding agent 用(推荐)

以 Claude Code 为例,安装版本化插件:

claude plugin marketplace add heygen-com/hyperframes
claude plugin install hyperframes@hyperframes

然后在 /plugin → Marketplaces 里给 hyperframes marketplace 打开自动更新,之后用 /hyperframes:hyperframes 调用。插件指南里还覆盖了 Copilot、VS Code、Cursor、Gemini CLI。

如果只想装"独立 skills"(包括 OpenCode),用:

npx skills add heygen-com/hyperframes

装完之后,直接对 agent 说一句自然语言就行:

Using /hyperframes, create a 10-second product intro with a fade-in title, a background video, and subtle background music.

3.2 手动 CLI

npx hyperframes init my-video
cd my-video
npx hyperframes preview      # 浏览器里带热重载预览
npx hyperframes render       # 渲染成 MP4

环境要求:Node.js 22+ 和 FFmpeg。

3.3 整体流程

agent 的工作闭环被 skills 教成了一条清晰的流水线:规划视频 → 写合法 HTML → 接上可寻址动画 → 补媒体素材 → lint → 预览 → 渲染。

四、21 个 Skills:agent 的视频生产流水线

这是这个项目最有辨识度的部分——它没有把这些知识塞进一个巨大的 system prompt,而是拆成 21 个按需加载的 skills,分三层组织。

flowchart TB
  Router["/hyperframes router (read first)"] --> CW["Creation workflows"]
  Router --> DS["Domain skills (on demand)"]
  CW --> W1["product-launch-video"]
  CW --> W2["faceless-explainer"]
  CW --> W3["pr-to-video"]
  CW --> W4["embedded-captions"]
  CW --> W5["talking-head-recut"]
  CW --> W6["motion-graphics"]
  CW --> W7["music-to-video"]
  CW --> W8["slideshow"]
  CW --> W9["general-video"]
  DS --> D1["hyperframes-core"]
  DS --> D2["hyperframes-animation"]
  DS --> D3["hyperframes-keyframes"]
  DS --> D4["hyperframes-creative"]
  DS --> D5["media-use"]
  DS --> D6["hyperframes-cli"]
  DS --> D7["hyperframes-audio"]
  DS --> D8["hyperframes-registry"]

第一层是路由:/hyperframes。它是一张"能力地图",任何"帮我做个……"的请求都先经过它,由它决定走哪条工作流。

第二层是创作工作流(Creation workflows),把常见的视频类型各做成一个 skill:

Skill 用途
/product-launch-video 任意网站的产品发布/宣传片,或站点导览、社交短片(best 30–90s)
/faceless-explainer 从任意文本讲解一个概念,画面全由 LLM 生成(排版/抽象/图表/数据可视化)
/pr-to-video 把 GitHub PR 变成 changelog / feature reveal / 修复说明(通过 gh CLI 读取)
/embedded-captions 给已有的口播视频加字幕(素材不动)
/talking-head-recut 给口播/访谈/播客加设计感图形层(下三分之一、数据标注、动态标题)
/motion-graphics 10 秒以内的无旁白动效(动态字体、数据动画、logo sting、透明叠加)
/music-to-video 音乐 → 卡点视频(歌词/幻灯片/动感宣传)
/slideshow 演示文稿 / pitch deck(可导航的 deck,不是渲染出的视频)
/general-video 兜底的自由创作,也是"协作模式"的家
/remotion-to-hyperframes 把已有的 Remotion(React)composition 单向迁移到 HyperFrames

第三层是领域 skill(Domain skills),是被上面的工作流按需调用的"原子能力":composition 契约(hyperframes-core)、全部动画知识(hyperframes-animation)、seek-safe 关键帧(hyperframes-keyframes)、创意方向(hyperframes-creative)、媒体操作系统(media-use)、CLI 开发循环(hyperframes-cli)、音频混音(hyperframes-audio)、registry 块与组件(hyperframes-registry),再加一个 /figma 负责把 Figma 资产重建为动画。

这种"一个路由器 + 一组工作流 + 一堆原子能力"的拆法,是这套框架给 agent 友好的答案:agent 不需要一次吞下所有知识,只需要在正确的时刻加载正确的那一个 skill。

五、frame.md:把设计系统"翻译"给摄像机

这是项目里我觉得最妙的一个概念。

README 的原话是:每个品牌都有一个 design.md,但没有一个是写给摄像机看的。

frame.md 就是那层缺失的翻译:它拿走你在 Web 语境下的设计规范,然后为画框把它倒过来——同一套 token、同一套规则,但重写成"AI agent 能据此编排一支宣传片"的形式,而不用去猜尺度、也不用把 Web 的横幅、导航栏这些"浏览器填缝件"搬进视频。

产出是一份 DESIGN.md 的超集,整条工具链都能读它。它的原则被概括成一句话:Atoms stay sacred. Composition stays free. Numbers come from the script.(原子保持神圣,组合保持自由,数字来自脚本。)

官网提供了大量可直接 remix 的设计模板,比如 Biennale Yellow、BlockFrame、Blue Professional、Bold Poster、Broadside、Capsule、Cartesian、Cobalt Grid、Coral、Creative Mode 等,全部可以在 hyperframes.dev/design 浏览。

六、Catalog、Stack 与代码结构

6.1 Catalog:现成的块与组件

npx hyperframes add flash-through-white   # 着色器转场
npx hyperframes add instagram-follow      # 社交叠加层
npx hyperframes add data-chart            # 动画图表

转场、叠加、字幕、图表、地图、特效都做成了可复用的 block / component,缺什么装什么。

6.2 技术栈全景

组件 状态 作用
CLI 可用 脚手架、预览、lint、inspect、本地渲染
Core / Engine / Producer 可用 解析 composition、驱动 headless Chrome、编码视频、混音
Catalog 可用 可复用的块与组件
Agent skills 可用 教 coding agent 那些通用 Web 文档里没有的视频生产模式
Studio 可用,演进中 浏览器里的预览与编辑界面
AWS Lambda rendering 可用 部署分布式渲染栈,从笔记本或 CI 驱动渲染
hyperframes.dev 可用 社区 playground,预览/迭代/分享/渲染
frame.md 可用 把设计系统倒过来给摄像机用

6.3 代码怎么组织的

仓库是一组 monorepo 包,职责切得很清楚:

Package 职责
hyperframes CLI(创建、预览、lint、渲染)
@hyperframes/core 类型、解析器、生成器、linter、runtime、frame adapters
@hyperframes/engine 基于 Puppeteer + FFmpeg 的可寻址 page-to-video 捕获引擎
@hyperframes/producer 完整的渲染管线:捕获、编码、音频混音
@hyperframes/studio 浏览器端 composition 编辑器 UI
@hyperframes/player 可嵌入的 <hyperframes-player> web component
@hyperframes/shader-transitions 给 composition 用的 WebGL 着色器转场
@hyperframes/aws-lambda 分布式渲染的 AWS Lambda SDK 与部署面

硬件加速的转场、可嵌入的播放器、Lambda 分布式渲染——它不只做了一个 CLI,而是把"渲染"做成了一个可以嵌进别人产品里的基础设施。README 也明说了:它既可以本地用,也可以作为托管式创作工作流背后的渲染内核。

七、和 Remotion 比,差别在哪

HyperFrames 自己承认受到 Remotion 的启发,两者都用 headless Chrome + FFmpeg。真正的差别在创作模型:Remotion 赌 React 组件,HyperFrames 赌"人和 agent 都能轻松写的纯 HTML"。

HyperFrames Remotion
创作方式 HTML + CSS + 可寻址动画 React 组件
构建步骤 无;index.html 直接能播 需要打包器
交给 agent 纯 HTML 文件 JSX / React 工程
库时钟动画 通过 adapter 实现可寻址、逐帧精确 实时钟动画模式需要额外小心
分布式渲染 本地 + AWS Lambda Remotion Lambda(更成熟的云渲染)
许可证 Apache 2.0 Source-available(Remotion License)

许可证这一栏值得单独说:HyperFrames 是 Apache 2.0,没有按次渲染费,也没有商用门槛。 对于一个要把渲染嵌进生产流水线的团队来说,这一条的重量可能比技术细节还大。

八、几个值得注意的细节

  1. 增长速度快得反常。 仓库 2026 年 3 月创建,到 10 月已经 6.2 万 Star、5578 Fork(数据取自 GitHub API)。半年多冲到 6 万 Star,说明"HTML → 视频 + agent 友好"这个组合确实踩中了当下很多人的需求点。

  2. 它有"原生 App"了。 仓库首页展示图直接写的是 "HyperFrames app opening from the Dock: native Mac and Linux app now available"。也就是说除了 CLI 和 Studio,它还有本地桌面应用。

  3. 它把自己吃自己的狗粮。 README 说 HyperFrames 在 HeyGen 生产环境使用,社区还有 tldraw、TanStack 等团队在用(见 ADOPTERS.md)。视频公司拿它做生产工具,这个背书比 Star 数更实在。

  4. 文档比代码"重"。 21 个 skills、大量 guides(GSAP 动画、Claude Design、Open Design、HyperFrames vs Remotion……)、catalog、showcase——这个项目把很大一部分精力投在了"怎么让 agent 和人都用对"上。从它的 self-description "Built for agents" 就能看出来,这不是一句营销口号,而是资源分配的结果。

  5. 开发时要注意 Git LFS。 回归测试基线(约 240MB 的 .mp4)走 Git LFS,clone 完整仓库前要先 git lfs install;只要源码可以用 GIT_LFS_SKIP_SMUDGE=1。

  6. 它没有试图做"全自动"。 一个容易被忽略的细节:/slideshow 的产出是可导航的 deck,而不是渲染出的视频;/hyperframes 是"读了再说"的路由层,会先确认创作意图(the intent layer that confirms every creation brief up front)。这说明它的设计哲学不是"一句话甩给 AI 全自动生成",而是先对齐意图,再让 agent 干活——这大概是从一堆 AI 生成视频工具里能跑出来的关键。

一句话评价:HyperFrames 的真正创新不在"用 HTML 渲视频"这件事本身,而在于它把 agent 的可用性当成了第一性的设计约束——从 HTML 描述层、无构建、确定性渲染,到 21 个按需加载的 skills 和 frame.md 这套设计翻译层,每一处都在回答同一个问题:"怎么让一个只会写 HTML 的 agent,可靠地产出一支视频?"

想亲自试,最快的方式是打开 hyperframes.dev 的 playground,或者直接对 Claude Code 说一句"用 /hyperframes 给我做个 10 秒的片头"。


📦 项目地址: https://github.com/heygen-com/hyperframes 🔗 官网 / Playground: https://www.hyperframes.dev/ 📚 文档: https://hyperframes.heygen.com/introduction 💬 Discord: https://discord.gg/EbK98HBPdk 📄 许可证: Apache 2.0 ⭐ Star: 62.2k(截至 2026-10-13) 📦 npm: https://www.npmjs.com/package/hyperframes

作者: itech001 来源: 公众号:AI人工智能时代 网站: https://www.theaiera.cn/ 每日分享最前沿的AI新闻资讯和技术研究。

分享给朋友