HyperFrames 是 HeyGen 开源的 HTML 转视频渲染框架,用 HTML + data-* 属性描述时间轴,通过 Chrome HeadlessExperimental.beginFrame API 逐帧 seek 抓取再喂给 FFmpeg,专为 AI 编码代理(Claude Code、Cursor、Codex)生成可复现 MP4 而设计。
来源: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/ 目录一条视频是一份普通 index.html:根节点
@hyperframes/engine 启动 chrome-headless-shell,对每一帧调用 renderSeek(time) 把 DOM/动画跳转到精确时间点,再用 HeadlessExperimental.beginFrame 抓取像素缓冲。整个过程不依赖 wall-clock、不走屏幕录制路径,因此渲染速度只受单帧成本制约,不会丢帧。
来源:docs/packages/engine.mdx + docs/concepts/determinism.mdx适配器接口只有 init / getDurationFrames / seekFrame / destroy 四个方法,签名是 seekFrame(frame: number) => Promise
约束写死在文档里:禁用 Date.now / requestAnimationFrame / unseeded Math.random / 渲染期网络拉取;t = floor(frame)/fps 用整数算时间;__playerReady / __renderReady 两道 readiness gate 防止资源未就绪开拍;同一份 hyperframe.runtime 同时驱动浏览器预览和最终渲染,做到逐帧像素相同。
来源:docs/concepts/determinism.mdx + docs/packages/producer.mdxnpx hyperframes render --docker 在容器里跑渲染,固定 Chrome 版本、系统字体集、FFmpeg 版本,跨机器输出位级一致;本地直接渲染会因平台字体替换略有差异,文档明确给出建议场景。
来源:docs/concepts/determinism.mdx + docs/guides/rendering.mdxskills/ 目录下 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@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.mdxnpx hyperframes add
整体是一个 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.json1) 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/*暂无 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.jsonHyperFrames 是目前最值得关注的「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 稳定 + 分布式落地。
来源:综合分析