hyperframes 是什么?

HyperFrames 是 HeyGen 开源的 HTML 转视频渲染框架,用 HTML + data-* 属性描述时间轴,通过 Chrome HeadlessExperimental.beginFrame API 逐帧 seek 抓取再喂给 FFmpeg,专为 AI 编码代理(Claude Code、Cursor、Codex)生成可复现 MP4 而设计。

⭐ 17,756 Stars 🍴 1,651 Forks TypeScript Apache-2.0 作者: heygen-com
来源:README + docs/introduction.mdx + docs/concepts/determinism.mdx 查看 GitHub 仓库 →

为什么值得关注

HyperFrames 的爆点是把视频渲染做成「网页工程」:开发者已经会写 HTML/CSS/GSAP,AI 代理也最擅长生成 HTML,因此它绕开 Remotion 那套 React 组件 + 强制构建步骤的路径。仓库同时附带 5 个 Markdown 形态的 skills 包(hyperframes、hyperframes-cli、gsap 等),一条 npx skills add heygen-com/hyperframes 就能把领域知识灌进 Claude Code / Cursor / Codex,让代理一次就写出合规的 composition。再加上 Apache 2.0 完全开源(对比 Remotion 的 source-available 商用限制),自然吸到 11k+ star 和大量企业自部署需求。

来源:README + docs/introduction.mdx + skills/ 目录

核心功能

HTML + data-* 数据驱动的 composition 模型

一条视频是一份普通 index.html:根节点

,子节点用 data-start / data-duration / data-track-index 描述时间轴和轨道。无需 React、无需 DSL、不强制 bundler,浏览器直接打开即可预览。

来源:docs/concepts/compositions.mdx + docs/concepts/data-attributes.mdx
Chrome BeginFrame seek-and-capture 渲染管线

@hyperframes/engine 启动 chrome-headless-shell,对每一帧调用 renderSeek(time) 把 DOM/动画跳转到精确时间点,再用 HeadlessExperimental.beginFrame 抓取像素缓冲。整个过程不依赖 wall-clock、不走屏幕录制路径,因此渲染速度只受单帧成本制约,不会丢帧。

来源:docs/packages/engine.mdx + docs/concepts/determinism.mdx
Frame Adapter 多动画运行时插件系统

适配器接口只有 init / getDurationFrames / seekFrame / destroy 四个方法,签名是 seekFrame(frame: number) => Promise。任何能 seek 的动画引擎(已落地 GSAP;CSS/WAAPI、Lottie、Three.js、Anime 在 Planned 列)都能接入。文档明确 Adapter API 处于 v0 实验阶段。

来源:docs/concepts/frame-adapters.mdx
Determinism Contract 与 Preview/Render 像素一致性

约束写死在文档里:禁用 Date.now / requestAnimationFrame / unseeded Math.random / 渲染期网络拉取;t = floor(frame)/fps 用整数算时间;__playerReady / __renderReady 两道 readiness gate 防止资源未就绪开拍;同一份 hyperframe.runtime 同时驱动浏览器预览和最终渲染,做到逐帧像素相同。

来源:docs/concepts/determinism.mdx + docs/packages/producer.mdx
Docker 模式锁定 Chromium / FFmpeg / 字体版本

npx hyperframes render --docker 在容器里跑渲染,固定 Chrome 版本、系统字体集、FFmpeg 版本,跨机器输出位级一致;本地直接渲染会因平台字体替换略有差异,文档明确给出建议场景。

来源:docs/concepts/determinism.mdx + docs/guides/rendering.mdx
AI 代理 skills 包与多 IDE 插件矩阵

skills/ 目录下 5 个 SKILL.md(hyperframes、hyperframes-cli、hyperframes-registry、website-to-hyperframes、gsap),通过 npx skills add 一键安装到 Claude Code / Cursor / Gemini CLI / Codex。仓库同时维护 .claude-plugin/.codex-plugin/.cursor-plugin 三套插件清单,CLI 默认非交互(flag-driven、纯文本输出、fail-fast),交互 UI 要显式加 --human-friendly。

来源:README + skills/*/SKILL.md + .claude-plugin/plugin.json
MP4 / WebM-alpha / HDR10 多格式编码

@hyperframes/producer 支持 mp4(h264/aac) 与 webm(VP9 yuva420p + Opus) 两种封装;HDR 通路会 ffprobe 每个视频/图像源探测 BT.2020/PQ/HLG,命中即切到 H.265 10-bit + HDR10 静态元数据;GPU 编码自动检测 nvenc / videotoolbox / vaapi。

来源:docs/packages/producer.mdx + docs/packages/engine.mdx
registry 区块库 + Studio 浏览器编辑器

npx hyperframes add 一键安装 50+ 现成区块(shader 转场、Instagram/TikTok/Reddit/X 社交卡片、动态图表、cinematic zoom 等);@hyperframes/studio 是浏览器内的 timeline 编辑器,@hyperframes/player 暴露 Web Component 用于线上回放。

来源:README + docs/catalog/blocks/* + packages/studio/README.md

技术架构

整体是一个 Bun workspaces 管理的 TypeScript monorepo(根 package.json 声明 workspaces: packages/*),切成 7 个发布包:core 提供类型/解析/runtime/linter,engine 是底层 seek 抓帧引擎(Puppeteer 24 + chrome-headless-shell + Hono 文件服务器 + linkedom 解析),producer 把 engine 的帧缓冲串到 FFmpeg 编码器并处理音频混音、字体打包(@fontsource/* 直接进依赖)和 readiness gate,cli 是面向用户的薄壳,studio / player / shader-transitions 各管编辑 UI、回放 Web Component、WebGL 转场。运行时数据流是单向的:HTML composition → core 解析校验 → engine 注入 hyperframe.runtime + 等 __playerReady → 循环 seekFrame(frame) → beginFrame 抓 buffer → producer 通过 spawnStreamingEncoder 把 buffer 流式喂给 FFmpeg → 同步混音输出 MP4/WebM。关键技术决策有三处:第一是把「时钟」从适配器手里夺走,所有 seek 都由 host 走 Math.floor 量化,适配器只负责回答「第 N 帧画面长啥样」,从源头消除竞争条件;第二是把 preview 和 render 强制共用一份 runtime,producer 的 seek 语义被声明为唯一真理,避免「预览能跑、渲染抽风」的常见陷阱;第三是把 AI 代理的领域知识做成可分发的 skills/ 目录,而不是塞进 README,让 Claude Code / Cursor 这类工具能自动加载。设计取舍上偏务实——分布式渲染明确写「Single-machine today」,HDR/WebGPU 走独立路径,Adapter API 自标 v0 实验,避免一上来就过度抽象;唯一略有 over-engineering 嫌疑的是 producer 把 11 个 @fontsource 字体包打成 dependency(不是 optionalDependencies)和重 LFS(~240MB 的 golden MP4 基线),对只想跑 init / render 的入门用户偏重。

来源:package.json + packages/*/package.json + docs/packages/* + docs/concepts/*

技术栈

infra: Node.js >= 22 + 系统 FFmpeg;可选 Docker 模式锁定 Chromium/字体/FFmpeg 版本;Git LFS 存放 packages/producer/tests/ 下约 240MB MP4 回归基线  |  key_deps: puppeteer ^24.0 / puppeteer-core ^24.39(驱动 chrome-headless-shell), hono ^4.6 + @hono/node-server(composition 文件 HTTP 服务), linkedom ^0.18(服务端 HTML 解析), FFmpeg(外置二进制,h264/VP9/HEVC + Opus/AAC,自动 nvenc/videotoolbox/vaapi 检测), @fontsource/* 11 个字体包(Inter/IBM Plex Mono/Archivo Black 等,打进 producer 保证字体一致), oxlint ^1.56 + oxfmt ^0.41 + lefthook + commitlint + knip(基于 Rust 的工具链)  |  language: TypeScript(package.json type: module,tsc / tsx 直接跑 .ts,无需打包)  |  framework: Bun workspaces monorepo + 自研 hyperframe.runtime + GSAP frame adapter

来源:package.json + packages/engine/package.json + packages/producer/package.json

快速上手

# 方式 1:搭配 AI 编码代理(推荐) npx skills add heygen-com/hyperframes # 然后在 Claude Code / Cursor / Gemini CLI / Codex 里输入: # Using /hyperframes, create a 10-second product intro with a fade-in title, a background video, and background music. # 方式 2:手动初始化项目 npx hyperframes init my-video cd my-video npx hyperframes preview # 浏览器实时预览(live reload) npx hyperframes render # 渲染为 MP4 # 方式 3:一键安装 catalog 区块 npx hyperframes add flash-through-white # shader 转场 npx hyperframes add instagram-follow # 社交卡片 npx hyperframes add data-chart # 动画图表 # 系统要求:Node.js >= 22、FFmpeg;克隆完整仓库需 Git LFS(macOS: brew install git-lfs && git lfs install), # 只想看源码可用 GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/heygen-com/hyperframes.git
来源:README

使用场景

1) AI 代理驱动的批量短视频生产:把 PDF / CSV / 网页 URL 喂给 Claude Code,让它用 /hyperframes skill 直接产出 9:16 抖音/TikTok 风格的带字幕短片,CLI 非交互友好,适合无人值守流水线。2) 程序化营销与产品介绍片:开发者用 HTML+CSS+GSAP 写 hero section 一样的视频,npx hyperframes preview 当浏览器调,npx hyperframes render --docker 出位级可复现的 MP4。3) 数据可视化动画:catalog 里的 data-chart、动态柱状条、shader 转场组合成 bar chart race 类报表视频,CI 里跑 visual regression 用 producer 对比 golden baseline。4) 替代 Remotion 的开源化场景:团队规模超过 Remotion source-available 阈值、或者关心 OSI 合规、不想付 per-render 费用时,本地部署 + 自托管渲染节点最直接的替代方案。

来源:README + docs/guides/* + docs/catalog/blocks/*

优势与局限

优势

  • 代理友好度极高:CLI 默认非交互、flag 化、fail-fast、纯文本输出,配套 5 个分领域 skills 包和 Claude/Codex/Cursor 三套插件清单,比一般 OSS 项目对 AI 工具链友好一个量级
  • 确定性写进合同:t=floor(frame)/fps 整数时钟、禁用 wall-clock、__playerReady/__renderReady 双 gate、Docker 模式锁版本,CI 跑回归测试时不会出现「同样输入两份不同视频」的随机抖动
  • 运行时插件接口小而稳:Frame Adapter 只暴露 init/getDurationFrames/seekFrame/destroy 四个方法,社区接入门槛低,且通过文档化的 conformance tests(重复性、随机 seek、bounds、cleanup)保证质量
  • 授权干净:Apache 2.0 OSI 合规,无 per-render fee、无团队规模阈值,企业自部署没有法务摩擦,是 Remotion 之外难得的真·开源选择
  • Preview = Render 同源 runtime:避免了「浏览器里跑得好、headless 渲染抽风」这种典型陷阱,从根本上提高 debug 效率
  • 工具链激进现代化:oxlint/oxfmt(Rust)、Bun workspaces、tsx 直跑 .ts、lefthook/commitlint/knip 全链路 lint 治理,反映团队对开发者体验的重视

局限

  • 可扩展性:分布式渲染明确「Single-machine today」,对比 Remotion 的 Lambda 在大规模商用渲染场景仍有差距;想横向扩展只能自己拼工作池
  • 可扩展性:Frame Adapter API 自标 v0 实验,CSS/WAAPI、Lottie、Three.js、Anime 全部 Planned,目前真正可用的运行时只有 GSAP,社区适配器 = TBD
  • 稳定性 / 版本治理:repo 没有 GitHub Releases,靠 git tag(v0.5.0-alpha.4 / 2026-04-26)发布,多数包仍卡在 0.4.31 alpha 状态;adapter API 文档明确「breaking changes possible until v1」
  • 可测试性:完整克隆要拉 Git LFS(约 240MB 的 golden MP4 基线),CI 里 LFS 流量和缓存策略容易踩坑;新贡献者首次 git clone 失败的报错信息对 Windows 不友好
  • 性能 / 部署成本:依赖系统 FFmpeg + chrome-headless-shell + Node.js >= 22,producer 还把 11 个 @fontsource 字体包硬塞进 dependencies,npm install 体积偏大;移动/边缘设备本地部署不现实
  • 可维护性:核心创新(beginFrame、seek-driven)来自 Remotion(README 已注明保留 attribution 注释),未来如果 Chrome 改 HeadlessExperimental API 或 Puppeteer 24 升级断层,整个引擎层要跟着改,单点风险集中
来源:综合 docs/concepts/* + docs/packages/* + 包版本号 + tree.txt

最新版本

暂无 GitHub Release,靠 git tag 维护版本。最新 tag v0.5.0-alpha.4(2026-04-26,commit e8f0561,message: chore: release v0.5.0-alpha.4),同窗口还有 v0.5.0-alpha.3 / alpha.2 / alpha.1。各 npm 包 package.json 里多数仍标 0.4.31(cli/engine/producer),核心仓库整体处于 1.0 前的 alpha 收尾节奏;旧 tag v1.0.3(2026-03-26)来自更早的命名方案,已被 0.5.x alpha 流取代。

来源:GitHub Tags + packages/*/package.json

总结评价

HyperFrames 是目前最值得关注的「HTML→视频」开源框架,它的差异化不是又一个 React video DSL,而是把决定论渲染(beginFrame seek-and-capture)+ 代理友好 CLI(非交互 flag 化)+ 可分发 skills 知识包做成了一套完整闭环,再用 Apache 2.0 把 Remotion 的商业护城河直接抹平。技术决策务实克制:分布式留白、Adapter API 标 v0、Preview/Render 共用 runtime,没有为了卖点强行造抽象。务实建议:① 个人开发者和中小团队想用 AI 代理批量产短视频、抖音/TikTok 自动化运营、产品介绍片,可以放心上手——npx hyperframes init 加 /hyperframes skill 是当前最快从 0 到 MP4 的链路;② 国内用户和私有化部署团队尤其受益,本地或 Docker 渲染都跑得通,没有 per-render 费用,授权也无团队规模阈值;③ 如果你做大规模商用渲染(每天上万视频、需要 Lambda 级横向扩展),现阶段建议自己包工作池或继续观望——Single-machine 限制和 alpha 版本号是真实风险;④ 想接入 GSAP 以外的动画引擎(Lottie / Three.js)目前要自己写 adapter,且 v0 接口有破坏性变更预期,生产前先评估迁移成本。一句话:用来对比 Remotion 时它已经成立,用来生产高价值长片仍需等 1.0 稳定 + 分布式落地。

来源:综合分析
透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-04-28 01:43. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件