AONIR JOURNAL

用 Codex / Claude Code 做视频:两支 15 秒宣传片,画面和配乐全是代码

这两支 15 秒的片子,没用一张图片素材,没打开过剪辑软件,也没有版权音乐。画面是 AI 写的网页代码,由浏览器一帧一帧渲染;配乐是 Python 从正弦波开始合成的,和画面共用一个节拍,所以每个切点都卡在鼓点上。下面放出成片、讲清原理;模板已经开源,改一个配置文件就能换成你的品牌。

两个代码视频模板的画面:左边是 16:9 的产品宣传片(官网首屏),右边是 9:16 的「这支片子,是代码写出来的」(代码连成 logo、六种动效拼成一面墙)点击查看大图
IMAGE VIEWER

两个代码视频模板的画面:左边是 16:9 的产品宣传片(官网首屏),右边是 9:16 的「这支片子,是代码写出来的」(代码连成 logo、六种动效拼成一面墙)

1600 × 900
FIG. 01

左:product-promo 模板(16:9);右:code-film 模板(9:16)。两支片子的每一帧都由代码渲染。

开始阅读
THE ESSENTIALS

先看结论

  1. 两支 15 秒宣传片,画面和配乐都是 AI 写的代码生成的:0 张图片素材、0 次手动剪辑、0 首版权音乐。

  2. 画面写成网页,无头 Chrome 按时间逐帧截图;配乐用 Python + numpy 合成,和画面共用 128 BPM 的节拍。

  3. 模板已开源(MIT):改一个 config.js 换成你的品牌,一条命令出 1080p 60 帧成片,8 核 Mac 约 4 分钟。

  4. 仓库带 AGENTS.md,Codex 和 Claude Code 都能照着改文案、出预览图、渲染成片。

  5. Codex 包含在 ChatGPT 套餐里,Free 可以体验;Claude Code 需要 Claude Pro 或更高的订阅。

竖屏成片:这支片子,是代码写出来的

code-film 模板,9:16,15 秒。点击播放,视频 1.7 MB。

片头敲出一句提示词「做一支 15 秒宣传片,要帅」,每敲一个字响一个音,打完刚好是一段旋律。发送之后满屏代码滚动,其中一段 logo 的坐标飞出来,连成 AONIR 的标志,再被像素化炸开。

接着一拍换一种动效技法:动态文字、3D 空间、粒子、形状变形、液态、数据图表,上半屏是对应的代码,下半屏是渲染结果,随后六个画面拼成一面墙。「连音乐,都是算出来的」这段里,钢琴卷帘的音符就是配乐实际弹的音符,下方频谱读的是成片音频逐帧分析出的数据。最后同一个广告版式一拍换一个虚构品牌,定格在「你的品牌,下一个。」

横屏成片:产品宣传片

product-promo 模板,16:9,15 秒。点击播放,视频 1.1 MB。

这支按常见的产品发布片结构走:先画出 logo 的结构线和 60° 斜线标注,镜头钻进标志里的三角形;产品名一拍一个砸上来;三条和 logo 同角度的色带扫过,进入官网首屏,镜头拉远露出浏览器;手机演示三步流程;三个卖点黑、白、红三色硬切;最后 logo 四块碎片汇聚,静音一拍后合体。

片中是 AONIR 自己的官网和购买流程。换成别的品牌时,网址、导航、标题、三个步骤、手机界面的文字和三个卖点,都在同一个配置文件里改。

原理:画面是网页,配乐是数学

「用代码做视频」具体是这样:每一帧都是函数 render(t) 的结果,给定时间 t,页面就摆成那一刻的样子。无头 Chrome 按每秒 60 帧的时间点逐帧截图,ffmpeg 再把截图编码成视频。同一个 t 永远画出同一帧,所以可以反复渲染、随时修改。

  • 动效:用 HTML、CSS、SVG 和 Canvas 写,所有运动都是时间的函数,没有用动画软件。
  • 动态模糊:每帧在 180° 快门内渲染 8 到 16 个子帧再叠加,快速运动的地方用更多子帧,运动看起来和摄影机拍的一样顺。
  • 配乐:Python + numpy 从正弦波开始合成底鼓、军鼓、贝斯、和弦和转场音效,再做混响、混音和限幅,响度约 -12.6 LUFS。
  • 卡点:画面和配乐共用同一个节拍网格,第 n 拍在 n × 60 ÷ 128 秒,写画面切点和写鼓点用的是同一个公式。
  • 渲染:一支 15 秒成片有 900 帧,加上子帧要截约 8000 张图,分 4 路并行,一台 8 核 Mac 约 4 分钟。

用开源模板做你自己的片子

两支片子的全部源码放在 GitHub 公开仓库 ai-code-video-templates,代码采用 MIT 许可。每个模板的品牌、logo、颜色和文案都集中在一个 config.js 里。

最省事的做法是交给 AI 编程助手:用 Codex 或 Claude Code 打开仓库,说清楚你的品牌和文案。仓库根目录的 AGENTS.md 写了该改哪个文件、SVG logo 怎么转换、怎么出预览图、哪些数量不能动,助手照着做就行。

COMMAND / 01

自己动手

git clone https://github.com/Avarce/ai-code-video-templates
cd ai-code-video-templates && pip install numpy
node engine/render.mjs templates/code-film stills 1 4 8 14
node engine/build.mjs templates/code-film
AONIR · 操作命令在终端中逐行执行
PROMPT / 01

对 AI 编程助手说

用 templates/code-film 给我做一支片子:品牌叫「北屿茶饮」,主色 #1F8A5B,logo 用 assets/my-logo.svg,提示词改成「给我的茶饮店做个开业视频」,片尾写「新店开业 欢迎来坐坐」。先出几张预览图给我看,没问题再渲染成片。
AONIR · 中文提示词在 Codex 或 Claude Code 中发送这项任务

需要什么:Codex 或 Claude Code

电脑上需要 Node.js 22 或更新版本、Python 3 和 numpy、ffmpeg,以及 Google Chrome 或 Chromium。改片子的活交给 AI 编程助手,两个都可以:

  • Codex:不单独收费,包含在 ChatGPT 套餐里。Free 可以体验,经常用建议 Plus 或更高。
  • Claude Code:需要 Claude Pro 或更高的订阅。这两支片子就是用 Claude Code 做的。

做之前要知道的

  • 目前只在 macOS 上实测过。Linux 要先装中文字体(如 Noto Sans CJK),否则中文会显示成方块。
  • 配置文件里有几个数量不能改,比如竖屏片的 4 个演示品牌和 3 条数据。配乐的鼓点是按这些数量写的,改了会音画错位。
  • 演示里的 AONIR 名称和 logo 不在 MIT 授权范围内,发布你自己的片子前要换掉;片中的咖啡、跑鞋等品牌都是虚构的。
  • 发到抖音、视频号、小红书时,按平台要求勾选「AI 生成」标识。
  • 成片约 50 MB(1080p 60 帧)。放进网页时建议另存一个 720p 以内的小文件,并设置为点击才加载,本页的两个视频就是这样处理的。
A FEW MORE THINGS

你可能还想知道

01不会写代码能用吗?

能。让 Codex 或 Claude Code 按仓库里的 AGENTS.md 修改 config.js,你只需要说清楚品牌、颜色和文案,看预览图确认,最后让它渲染成片。

02配乐会有版权问题吗?

配乐是代码实时合成的,不含采样或现成曲目。模板代码采用 MIT 许可,可以商用;AONIR 的名称和 logo 除外。

03做一支要多久?

在一台 8 核 Mac 上,渲染一支 15 秒、1080p 60 帧的成片约 4 分钟。改文案、看预览的时间另算,主要看你改多少。

04只能用 Claude Code 吗?

不是。这两支片子是用 Claude Code 做的;仓库里的 AGENTS.md 是 Codex 会读取的说明文件,渲染本身只需要运行 Node 和 Python 命令,能在终端里执行命令的 AI 编程助手都可以照着做。

05能改成 30 秒或别的画幅吗?

可以,但要同时改画面时间轴和配乐。时长和尺寸在 template.json,镜头时间在 timeline.js,鼓点在 music.py,三处用同一个节拍公式,建议让 AI 按 AGENTS.md 一起改。

BEHIND THIS GUIDE

有据可查,方便追溯

编辑说明

本文记录 AONIR 2026 年 9 月 25 日的实际制作过程:两支片子用 Claude Code 完成,渲染耗时和文件大小在一台 8 核 Mac 上测得。模板仓库里的 AGENTS.md 同样写给 Codex,但本文的实测只覆盖 Claude Code 和 macOS。

  1. GitHub:Avarce/ai-code-video-templates(两支片子的全部源码)
  2. Chrome DevTools Protocol(逐帧截图使用的接口)
  3. FFmpeg Filters:tmix(叠加子帧生成动态模糊)
  4. OpenAI Codex 官方文档
  5. Claude 帮助中心:Claude Code 的模型、用量与限制