hyperframes
用HTML写视频,AI直接渲染成MP4,支持GSAP/Lottie等动画引擎
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用HTML写视频,AI直接渲染成MP4,支持GSAP/Lottie等动画引擎
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你要给产品视频加上动态字幕、配一段背景音乐、再叠一个转场特效。传统做法要打开 After Effects、Premiere,一帧帧调;或者写一堆 React 代码+FFmpeg 命令行。现在,只需写一段 HTML,AI 就能自动把它渲染成专业级 MP4 视频——这就是 HyperFrames 正在做的事。
HyperFrames 最初是 AI 视频生成公司 HeyGen 内部的视频渲染框架。HeyGen 团队每天要生成成千上万个 AI 视频,早期使用业界知名的 Remotion 框架(基于 React 构建视频),但在深度使用中遇到了瓶颈:React 组件体系对于 AI 编程助手来说并不友好,动画时间线难以精确控制,大规模自动化渲染的可扩展性也遇到挑战。
团队决定另起炉灶,用 HTML 作为视频创作的核心语言,重新设计整个渲染管线。这个选择背后有精妙的考量:AI 编程助手天生"会说话"的对象就是 HTML/CSS,Prompt 一个 AI 生成 HTML 比让它写出正确的 React 组件要自然得多。2024 年底 HyperFrames 开源后迅速走红 GitHub,不到一年便突破 2.1 万 star,成为 AI 视频工具领域最受关注的开源项目之一。
图1:HyperFrames 工作流——用 HTML 定义视频Composition,框架自动完成渲染
HyperFrames 的核心创新在于放弃了 React 生态,选择 HTML + CSS + GSAP 作为视频创作语言。以一个最简单的视频为例,开发者只需要写这样的 HTML:
<div id="stage" data-composition-id="my-video" data-width="1920" data-height="1080">
<video id="clip-1" data-start="0" data-duration="5" data-track-index="0" src="intro.mp4" muted playsinline></video>
<img id="overlay" class="clip" data-start="2" data-duration="3" data-track-index="1" src="logo.png" />
<audio id="bg-music" data-start="0" data-duration="9" data-track-index="2" data-volume="0.5" src="music.wav"></audio>
</div>
这里的 data- 属性(data-start、data-duration、data-track-index)定义了时间轴上的位置关系——哪个轨道、从第几秒开始、持续多久。这就是 HyperFrames 的全部"DSL",没有 JSX,没有状态管理,任何一个懂 HTML 的人都能理解。
渲染引擎在底层通过 Puppeteer 驱动无头 Chrome,利用 Chrome 的 BeginFrame API(也叫 headless-shell rendering)实现逐帧精确渲染,最终将每一帧通过 FFmpeg 编码为 MP4。整个流程是确定性的——相同输入永远产生相同输出,非常适合 CI/CD 自动化流水线。
HyperFrames 引入了一个优雅的抽象层:Frame Adapter。框架本身只负责时间轴编排和帧渲染,而具体的动画效果由适配器提供。目前官方支持的动画适配器包括:
这样做的好处是:框架保持简洁,动画能力由生态补齐。开发者可以混用多种动画源——比如 GSAP 控制转场、Lottie 播放品牌动画、CSS 处理简单的淡入淡出。
图2:HyperFrames 开源仓库,采用 monorepo 架构管理多个功能包
HyperFrames 采用 Node.js monorepo 架构,使用 workspaces 模式管理 8 个核心包:
| 包名 | 职责 |
|---|---|
@hyperframes/core | 核心库:Composition 验证、Lint、编译器、Registry |
@hyperframes/engine | 渲染引擎底层,负责帧提取和编码 |
@hyperframes/producer | Chrome BeginFrame 渲染引擎,FFmpeg 封装,Lambda 分布式渲染 |
@hyperframes/player | 浏览器端预览播放器 |
@hyperframes/studio | 交互式可视化编辑器(Web UI) |
@hyperframes/cli | 命令行工具:init、preview、render、lint |
@hyperframes/shader-transitions | Shader 着色器转场效果 |
@hyperframes/aws-lambda | AWS Lambda 分布式渲染适配器 |
整个项目使用 TypeScript 开发,有完整的类型定义和测试套件(regression harness),生产环境渲染在 Docker 容器中进行(基于 node:22-bookworm-slim + Chromium + FFmpeg)。
HyperFrames 最具差异化的特性是对 AI 编程助手的原生支持。项目为多个主流 AI 编程工具提供了开箱即用的插件/技能包:
/hyperframes、/hyperframes-cli、/hyperframes-media)和 Claude Design 集成,可以描述想要的视频,AI 自动生成 HTML 代码并渲染项目还提供了详细的 Prompting Guide,展示了"冷启动"、"热启动"、"格式特定"、"迭代优化"等多种 AI 协作模式。对于 AI 视频创作团队来说,这意味着不需要学习视频制作工具,只要会描述需求,就能生成视频。
README 中用了相当大篇幅对比 HyperFrames 与同领域最知名的开源竞品 Remotion,核心差异在于:
index.html 可以直接运行,无需打包器;Remotion 需要bundlerHyperFrames 提供了多种部署路径,但没有 docker-compose 一键启动:
npx hyperframes init → npx hyperframes preview → npx hyperframes render,需要 Node.js >= 22 和 FFmpegDockerfile.test,包含完整的 Chromium + FFmpeg + 字体环境,适合 CI/CDexamples/k8s-jobs/ 示例支持分布式批量渲染@hyperframes/aws-lambda 包支持 Lambda 函数渲染,适合突发性大规模渲染任务Studio 编辑器提供了浏览器端可视化预览,是目前最友好的上手入口。
尽管 HyperFrames 表现亮眼,仍有一些客观限制需要注意:
libgbm1、libnss3 等),初次部署有一定复杂度HyperFrames 的出现代表了一个趋势:用 AI 编程工具做视频,正在从"概念"走向"工程化"。过去需要专业设计师几个小时完成的工作,现在 AI 可以根据一句描述生成初稿;过去需要 FFmpeg 老手才能完成的自动化渲染,现在一行 npx hyperframes render 就能搞定。
随着多模态 AI 的持续进化,HyperFrames 这类框架填补了"AI 生成视频内容"到"AI 自动化渲染输出"之间的空白。对于 AI 爱好者而言,它降低了视频创作的门槛;对于 AI 开发者而言,它提供了可靠的渲染基础设施。