近两周,一首名为《I'm Upping My P(doom)》的歌曲在 X 上爆火。但真正令人震撼的不是这首歌本身,而是有人用 Claude Code 为它拍了一支完整的 MV——全程没有使用任何 AI 视频生成模型,没有 Seedance、没有 Runway、没有 Grok。
每一帧画面、每一个镜头运动、每一次歌词字幕跳动,全是用代码算出来的。

这个项目叫做 pdoom-video。作者 mexicat 全程在 Claude Code 里与 Claude Opus 5.5 对话完成——从概念策划到分镜设计,从音频分析到渲染引擎,每一个场景都是写出来的,不是生成出来的。
更关键的是:浏览器里的实时预览和离线导出的 4K60 成片像素级一致。因为每一帧都是歌曲时间的确定性函数——给定时间戳 t,输出画面永远一样。这在视频创作领域几乎是一个全新的范式。
pdoom-video 是什么
简单说,这是一个用代码渲染音乐视频的完整工程。它把一首歌拆成时间、节拍、鼓点、人声 onset,然后让 18 个场景模块像精密齿轮一样咬合运转,每一帧的视觉元素都跟着歌曲的节奏精准变化。
它证明了一件事——你不需要昂贵的视频编辑器,也不需要训练数百万参数的生成模型,只要有一个好的渲染引擎、一套严谨的时间对齐工具,再加一个足够强的编码助手,就能拍出一支完整的 MV。
四大核心亮点
1. 确定性渲染:同一首歌,永远同一支视频
每一帧的所有属性——位置、颜色、旋转、缩放——都是当前播放时间 t 的函数。这意味着:
- 浏览器里按空格键播放的实时预览,和跑命令行渲染出来的 1080p60/4K60 成片完全一致
- 改一行代码,重跑渲染,对比结果就能精准定位改了什么
- 18 个场景模块共享同一个时间轴,场景切换精确对齐到歌词行和节拍网格
视频渲染变得可调试、可版本控制、可重现,就像维护一个 Web 应用一样。
2. 运动模糊的自适应采样
引擎会分析每帧的运动剧烈程度:静止帧只取 12 个子帧,普通相机运动取 36 个,快速推拉摇移最多取 324 个子帧——用 tol 阈值判断,多加子帧不再改变画面时就自动停止。
3. 18 个场景 × 1 种设计系统
项目有 18 个独立场景模块(open、loss、prompt、hook、room、shoggoth……),每个场景有独特的视觉语言——雕刻版画风、示波器线条、钞票雕刻线、蓝图工程图、光线追踪 3D……但它们共享统一的设计系统:字体族、色板、胶片颗粒感和冷幽默调性。
4. 逐词甚至逐音节的歌词对齐
作者做了一套完整的音频分析 pipeline:
- Demucs 人声分离:用 htdemucs_ft 模型把人声从伴奏中分离
- CTC 强制对齐:得到每个词的精确起止时间
- Whisper 交叉验证:独立跑一次 Whisper,和 CTC 结果比对
- 节拍/onset 分析:BPM 精确到小数点后三位(132.007 BPM)
最终产出逐词甚至逐音节的时间戳。字幕不是"跟着感觉走",而是精确到帧的"什么时候亮、亮多少、灭多少"。
技术架构
整个项目分为四层:
- Timeline(时间轴):场景切换点,对齐歌词行和节拍
- Scenes(场景模块 ×18):每个场景独立的视觉逻辑
- Engine(渲染引擎):时间回放、后处理、字体、GPU
- Data(数据层):lyrics.json audio.json
渲染引擎基于 Three.js(3D/GPU 加速)和 Bun Vite(开发打包),后处理管线包括 bloom 光晕、halation 辉光和 film grain 胶片颗粒。离线渲染通过 headless Chrome 逐帧渲染,经 WebSocket 推给主进程,最后由 ffmpeg 编码为 H.264 AAC 的 MP4。
快速上手
环境要求:bun(最新版)、Google Chrome(最新版)、ffmpeg(带 libx264 编码)、uv(仅分析阶段需要)。
git clone https://github.com/mexicat/pdoom-video.git
cd pdoom-video/app
bun install
bunx vite
打开 http://localhost:5173 即可在浏览器中实时预览。按空格键播放/暂停,[ / ] 切换场景。
渲染 1080p60 成片:
bun scripts/render.ts video \
--samples auto \
--shutter 0.2 \
--out ../out/pdoom.mp4
渲染 4K60 只需加上 --scale 2 参数——每一层、每一条线、每一个 shader 都按 3840×2160 渲染,不是简单放大。
设计哲学:代码即媒介
pdoom-video 最核心的理念是:把视频每一帧都变成可计算的函数。这不是"AI 生成视频",而是"代码定义视频"。
这种范式有三个巨大优势:
- 可调试:渲染结果有问题?找到对应场景模块,改参数,重跑。不像生成式模型只能"再来一次"
- 可版本控制:Git 里每一行代码的改动,精确对应视频里每一帧的变化
- 可复现:同样的代码和输入,永远得到同样的输出
苏米注:这个项目最值得关注的不是"做出了 MV",而是它证明了代码可以成为一种新的视觉创作媒介——可调试、可协作、可迭代。这才是对创作流程的真正改变。
写在最后
pdoom-video 展示的不仅是一支很酷的 MV,更是一个人和 AI 协作的新范例。
过去两年,AI 辅助编程大多停留在"让代码写得更快"这个层面。但 mexicat 和 Claude Opus 5.5 的合作告诉我们:当你有清晰的设计文档、严谨的技术架构和一个真正理解你意图的编码伙伴,AI 可以是你的设计总监、音频工程师、渲染程序员——甚至帮你拍一支完整的 MV。