Code2Video 是由新加坡国立大学 Show Lab 推出的一款开创性视频生成框架,其核心理念是“以代码为中心”来生成高质量的教育视频。与传统的直接生成像素的 AI 视频模型(如 Sora)不同,Code2Video 不直接“画”视频,而是通过编写可执行的 Python 代码(基于 Manim 引擎)来“渲染”视频。这种方法解决了传统视频生成模型在逻辑严谨性、几何精确度和文字清晰度上的缺陷,特别适合生成数学、物理、计算机科学等需要精确表达的 STEM 类教学视频。该框架包含三个协作的 AI 智能体:规划器(Planner)负责设计分镜,编码器(Coder)负责编写和调试代码,评论家(Critic)负责视觉审查和优化。通过这种协作,Code2Video 能够将简单的文本知识点转化为媲美人工制作(如 3Blue1Brown 风格)的专业教学视频。
功能列表
- 智能分镜规划(Planner Agent):自动将输入的知识点或简短文本转化为详细的视频脚本和视觉故事板,规划视频的起承转合。
- 自动化代码生成(Coder Agent):将自然语言脚本转化为可执行的 Python (Manim) 代码,支持复杂的数学公式、几何图形和动画逻辑。
- 自我修复与调试:内置错误检测机制,当生成的代码报错时,系统能自动分析错误日志并修正代码,确保代码可成功运行。
- 视觉质量审查(Critic Agent):利用视觉语言模型(VLM)充当“审美指导”,检查生成画面的布局、重叠和清晰度,并提出修改建议反哺给编码器。
- 高精度矢量渲染:基于 Manim 引擎渲染,生成的视频具有无限分辨率的清晰度,公式和文字绝无模糊或伪影。
- 多模型 API 支持:支持接入 Claude、Gemini、GPT-4 等多种主流大语言模型作为后端逻辑驱动。
使用帮助
Code2Video 是一个开源的命令行工具,需要在本地配置 Python 环境运行。以下是详细的安装与使用流程,帮助你从零开始生成第一个教学视频。
1. 环境准备与安装
首先,确保你的电脑已安装 Anaconda 或 Miniconda,以及 Git。
步骤一:克隆项目代码
打开终端(Terminal)或命令提示符,执行以下命令下载项目:
git clone https://github.com/showlab/Code2Video.git
cd Code2Video
步骤二:创建虚拟环境
为了避免依赖冲突,创建一个独立的 Python 环境(建议 Python 3.9+):
conda create -n code2video python=3.9 -y
conda activate code2video
步骤三:安装系统依赖(以 Linux 为例)
Manim 引擎需要一些系统级的库(如 ffmpeg, cairo)。
sudo apt-get update
sudo apt-get install libcairo2-dev libpango1.0-dev ffmpeg
注:Windows 用户请参考 Manim 官方文档安装 ffmpeg 和 latex。
步骤四:安装 Python 依赖
项目最近优化了依赖项,安装速度已大幅提升:
pip install -r requirements.txt
2. 配置 API 密钥
Code2Video 依赖大语言模型来生成代码。你需要配置 LLM 的 API Key。
在项目根目录下找到配置文件(通常在 config 文件夹或通过环境变量设置)。建议直接在终端导出环境变量:
# 以使用 Claude 为例
export ANTHROPIC_API_KEY="sk-ant-..."
# 或者使用 OpenAI
export OPENAI_API_KEY="sk-..."
提示:请确保你的账户有足够的 Token 额度。
3. 生成视频(核心操作)
Code2Video 提供了一个便捷的启动脚本 run_agent_single.sh 来生成单个知识点的视频。
基本命令格式:
bash run_agent_single.sh [模型API] [输出文件夹前缀] "[知识点描述]"
操作示例:
假设你想生成一个关于“勾股定理(Pythagorean theorem)”的视频,使用 Claude-3.5-Sonnet 模型,操作如下:
- 编辑启动脚本(可选):
你可以直接运行命令,也可以打开run_agent_single.sh查看默认参数。 - 执行生成命令:
bash run_agent_single.sh claude-3-5-sonnet test_output "The Pythagorean theorem explains the relationship between the three sides of a right-angled triangle"
参数解释:
claude-3-5-sonnet:指定使用的推理模型,推荐使用编程能力强的模型。test_output:生成的视频和中间文件将保存在experiments/test_output目录下。"...":这是最重要的输入,用一句话清晰描述你想教的知识点。
4. 查看结果
程序运行过程中,终端会显示三个智能体的协作日志:
- Planner 会输出设计好的分镜描述。
- Coder 会显示正在生成的 Python 代码,如果报错会自动重试。
- Critic 会给出对当前画面的评价分数。
运行完成后,进入 experiments/test_output 文件夹,你将看到:
.mp4文件:最终渲染好的高清视频。.py文件:生成的 Manim 源代码(你可以手动修改这些代码来微调视频)。log.txt:完整的生成过程日志。
5. 进阶技巧
- 自定义素材:如果视频需要特定图标,可以将 SVG 文件放入
assets文件夹,并在提示词中提及。 - 调整时长:在输入的 Prompt 中,可以指定“生成一个约 30 秒的视频”,Planner 会相应调整分镜数量。
应用场景
- 数学与物理教学
老师输入“解释傅里叶变换的基本原理”,系统自动生成包含动态波形叠加动画的演示视频,直观展示抽象概念。 - 算法可视化
计算机专业学生输入“二分查找算法演示”,生成展示数组索引移动和查找过程的动画,用于技术博客或作业展示。 - 自动化网课制作
教育机构可以将教材目录批量输入系统,快速生产一系列基础概念的解释短视频,建立标准化课程库。 - 科研论文展示
研究人员可以将论文中的核心公式或模型逻辑输入,生成高精度的示意动画,用于学术会议演讲或视频摘要(Video Abstract)。
QA
- Code2Video 和 Sora/Runway 有什么区别?
Code2Video 并不直接生成像素,而是生成“代码”。这意味着它生成的视频逻辑绝对正确(因为基于数学公式计算),文字和线条无限清晰,非常适合教育和科普;而 Sora 等模型适合生成写实或艺术类的创意视频,但在文字和逻辑准确性上较弱。 - 我不懂编程可以使用吗?
可以。你只需要输入文字描述(提示词),系统会自动完成代码编写。但如果你懂一点 Python/Manim,你可以直接修改生成的代码,获得更高的控制权。 - 生成的视频很短怎么办?
目前的版本主要针对单一知识点生成短视频(通常 10-60 秒)。如果需要长视频,建议将大主题拆分为多个小知识点分别生成,最后在剪辑软件中合并。 - 安装时提示缺少 ffmpeg?
Manim 强依赖 ffmpeg 进行视频合成。请确保在命令行输入ffmpeg -version能看到版本信息。Windows 用户需手动下载 ffmpeg 并将其 bin 目录添加到系统环境变量 Path 中。 - 支持中文输入吗?
支持。虽然底层代码是英文,但你可以用中文描述知识点。为了更好的效果,建议在提示词中追加“Please use Chinese for the text in the video”或者直接在生成的代码中将文本替换为中文。































