做教学视频太累?我试了试“写代码就能生成视频“的 Code2Video

发布时间:2026/9/25 19:40:02
做教学视频太累?我试了试“写代码就能生成视频“的 Code2Video 起因一节 5 分钟的动画讲解能吃掉我一下午做过知识类视频的人应该都有体会真正费劲的不是把知识想明白而是把知识画出来。一个傅里叶级数的动画从画坐标轴、调动画节奏到把文字对齐熟练的人也要小半天不熟练的直接劝退。我平时写代码比用剪辑软件顺手所以一直有个念头能不能干脆用写代码的方式把这类讲解动画做出来最近刷到一个开源项目 Code2Video思路正好对上了。我翻了下它的仓库和论文又自己跑了一遍这篇就把过程和我关心的几个点说清楚。一句话说清它是什么Code2Video 是新加坡国立大学 Show Lab 做的一个框架你给它一个知识点比如汉诺塔问题“线性变换”“大语言模型原理”它自动产出一条教学视频。它跟常见 AI 视频最大的区别在于用什么来生成常见的 AI 视频Sora、Veo、可灵那类走的是像素级生成——模型一帧一帧地画出画面。Code2Video 走的是代码级生成——它写出来的是 Manim 代码再让代码渲染成视频。【解释】Manim是一个用 Python 写数学动画的引擎3Blue1Brown 那些标志性的数学讲解视频就是用它做的。渲染就是把代码算成一帧一帧画面再拼成视频。打个比方更好理解像素生成像请画师直接画一张成品画——画完就定型了想改一笔只能重画。代码生成像先画出一份可编辑的图纸——图纸能反复复印、随时改动。视频第 10 秒想换个颜色改一行代码重跑就行。这就是它敢说自己清晰、可重现、可调试的底气也是它和普通文生视频最本质的分野。它内部是三个 AI 在打配合我一开始以为它就是个调大模型写 Manim 代码的脚本翻了下源码才发现里面分了三道工各管一摊三个角色可以理解成一个小型的视频制作小组智能体用大白话理解具体在干什么Planner规划编剧把知识点拆成故事板分几段、每段讲什么、配哪些动画Coder编码程序员把故事板翻译成可执行的 Manim 代码Critic评审美术指导让视觉模型看一眼生成效果挑出版面重叠、留白不均的问题退回去让 Coder 改这里有个我觉得挺巧的设计Critic 不是嘴上说说不够好看它会去分析画面里元素的重叠和留白算出具体该挪到哪儿再把坐标建议发给 Coder 重排。相当于给 AI 配了个会盯版面的美术。Coder 那一步也不是写一遍就完事它会自己跑一遍代码看报错根据错误信息回头改有点像我们平时写代码的调试循环。我实际跑了一遍安装这块提前提醒一句它依赖 Manim系统级依赖没装好会直接卡住这是最容易劝退的一步。# 1. 克隆项目gitclone https://github.com/showlab/Code2Video.gitcdCode2Video/src# 2. 装 Python 依赖pipinstall-rrequirements.txt# 3. 装 Manim Community v0.19.0版本一定要对上# 参考官方安装指南https://docs.manim.community/en/stable/installation.htmlmacOS 上 Manim 的两个前置库cairo、pango我是用 brew 补的brewinstallcairo pango然后是配 API Key文件是api_config.json{LLM_API:{provider:anthropic,api_key:你的key,model:claude-4-opus},VLM_API:{provider:google,api_key:你的key,model:gemini-2.5-pro-preview-05-06},ICONFINDER_API_KEY:可选用来给视频补充图标素材}【解释】LLM就是负责写代码的那个大语言模型Planner 和 Coder 都靠它VLM是能看图的语言模型Critic 用它来看画面挑毛病。项目方推荐的组合是 Claude-4-Opus 配 Gemini-2.5-Pro。生成一条视频一行命令就够shrun_agent_single.sh--knowledge_pointHanoi Problem它会依次跑完 Planner 规划、Coder 写码、Critic 优化最后执行代码渲染出视频按项目说明默认落在CASES/TEST-single/目录下。要批量做就改long_video_topics_list.json里的主题列表然后shrun_agent.sh# 脚本里可以调这几项# FOLDER_PREFIX 输出文件夹前缀比如 Math-Course-2026# MAX_CONCEPTS 生成几个-1 表示全部# PARALLEL_GROUP_NUM 并行跑几组我拿汉诺塔试了一条出来的画面长这样这是视频里的真实一帧不是示意图。左边分点讲解规则右边三根柱子用 A/B/C 标注圆盘用不同颜色区分——很标准的数学动画风格。先说直观感受清晰度确实在线文字和图形都很干净没有像素生成视频那种文字糊成一团的毛病。当然它本质上是在画教学动画不是在做写实视频所以别指望它给你生成风景大片。它给自己出了套考卷光自己说好没用。这个项目做了个基准测试叫MMMC包含 117 个精选学习主题还配了真人手工制作的视频作为参考答案。【解释】基准测试benchmark就是一套统一的考卷大家都做同一套题才能横向比高下。评估分三个维度维度考什么怎么考知识传递TeachQuiz看完视频到底学没学到自动出题、让人看完视频答题看正确率美学与结构AES画面好不好看、排版合不合理比照真人视频的质量标准打分效率花多少 Token、跑多久统计三个智能体各自的 Token 消耗和渲染耗时说实话用看完视频后答题的正确率来衡量教学效果比单纯比画面相似度要靠谱得多也能看出这个项目是想认真做教育场景而不是做个好看的 demo。和另外两条路比一比我把三种方案摆在一起方便你判断对比项Code2Video传统文生视频Veo3 / Wan2.2 等手工剪辑清晰度高代码生成文字清楚中低像素生成文字易糊高可重现性完全可重现不可重现每次都不一样可重现但费时可调试性高改代码即可几乎无从下手可改但流程繁琐生成速度中等快慢成本低主要是 API 调用中算力高人力风格一致性高代码控制中低取决于制作者教育场景专门优化通用但不够清晰质量高但耗时一句话总结要稳、清、能复用选它要快、随便出个氛围视频传统文生视频更省事要极致自由和特效还是得手工来。我踩过的几个坑这部分也是从社区 issue 和论坛反馈里收集来的高频问题碰到别慌1. Manim 装不上八成是系统依赖缺失。Linux 上补build-essential python3-dev libcairo2-dev libpango1.0-devmacOS 用brew install cairo pango。强烈建议装进虚拟环境别污染全局python3-mvenv venvsourcevenv/bin/activate pipinstallmanim2. API 调用失败按顺序排查key 填对没、网络能不能通、账号额度够不够、有没有触发限流。3. 生成的代码跑不起来先确认版本manim --version应该是 0.19.0。然后可以直接去输出目录里翻出生成的manim_code.py手动跑一遍看报什么错manim-pqlmanim_code.py GeneratedVideo4. 视频不够好看升级一下 LLM官方推荐 Claude-4-Opus或者在prompts/目录里改提示词模板再让 Critic 多迭代几轮通常在版面上能明显改善。5. 太慢 / 内存爆并行数别开太大PARALLEL_GROUP_NUM按 CPU 核心数来调试阶段用低质量预览出片再上高质量manim-pql# 低质量快速预览manim-pqh# 高质量慢一些再就是先拿MAX_CONCEPTS5小批量试别一上来就冲上百个主题。这东西适合谁什么时候别用它适合你如果要批量做教学视频且希望风格统一、可复现需要反复迭代画面细节改一行就能重出你写代码比用剪辑软件顺手做的是数学、计算机、物理这类适合动画演示的内容。别用它如果你要的是实拍或复杂特效你只是想要一条有艺术感的氛围短片你完全不想碰命令行和 Python 环境。写在最后Code2Video 最打动我的是它换了个思路——不再执着于让 AI 直接画视频而是让 AI 写能画出视频的代码。这个转向带来的好处很实在看得清、改得动、跑一百遍都是一个样。当然它也不是万能的本质上是教学动画自动生成器边界很清楚。但如果你恰好卡在这类需求上它值得花一个下午装起来试试。项目地址github.com/showlab/Code2Video项目主页showlab.github.io/Code2Video论文arXiv:2510.01174