引言
"如果生成教学视频就像写代码一样简单,那该多好?"
这是"一天一个开源项目"系列的第16篇文章。今天带你了解的项目是 Code2Video (GitHub)。
在AI视频生成领域,大多数模型都是基于像素的文本到视频生成,虽然能产生视觉效果,但在教育场景中往往缺乏清晰度、连贯性和可重现性。Code2Video 提出了一个革命性的代码中心范式:使用可执行的 Manim 代码作为统一媒介,通过多智能体系统自动生成高质量的教学视频。无论是汉诺塔问题、大语言模型原理,还是傅里叶级数,都能通过代码自动生成清晰、美观、可重现的教育视频。
为什么选择这个项目?
- 🎬 代码中心范式:可执行代码作为视频生成的统一媒介,确保清晰度和可重现性
- 🤖 三智能体系统:Planner(故事板扩展)、Coder(可调试代码合成)、Critic(布局优化)协同工作
- 📚 MMMC基准测试:首个代码驱动视频生成基准,涵盖117个精选学习主题
- 🎓 教育场景优化:专为教学视频设计,参考3Blue1Brown的高质量标准
- 🏆 学术认可:已被NeurIPS 2025的Deep Learning for Code (DL4C) Workshop接受
- 🧪 多维度评估:系统性评估效率、美学和端到端知识传递
你将学到什么
- Code2Video 的代码中心范式和设计理念
- 三智能体系统(Planner、Coder、Critic)的工作原理
- 如何使用 Manim 代码生成教学视频
- MMMC 基准测试的构建和评估方法
- 如何配置和使用 Code2Video 生成视频
- 与其他视频生成方法的对比分析
- 实际教育场景中的应用案例
前置知识
- 对AI视频生成有基本了解
- 了解多智能体系统概念
- 熟悉Python编程(可选,有助于理解代码生成)
- 对教育视频设计有基本概念(可选)
项目背景
项目简介
Code2Video 是一个以代码为中心的智能体框架 ,用于从知识点生成高质量的教学视频。与基于像素的文本到视频模型不同,Code2Video 利用可执行的 Manim 代码来确保视频的清晰度、连贯性和可重现性。通过三智能体系统(Planner、Coder、Critic)的协同工作,自动将知识点转换为结构化的教学视频。
项目解决的核心问题:
- 传统文本到视频模型生成的教学视频缺乏清晰度和连贯性
- 视频生成过程不可重现,难以调试和优化
- 缺乏专门针对教育场景的视频生成工具
- 视频质量评估缺乏系统性标准
- 需要大量人工工作来创建高质量教学视频
面向的用户群体:
- 教育工作者和课程设计师
- 在线教育平台开发者
- AI视频生成研究者
- 需要批量生成教学视频的机构
- 对代码驱动视频生成感兴趣的技术人员
作者/团队介绍
团队:Show Lab @ National University of Singapore
- 主要作者 :
- Yanzhe Chen(陈彦哲)
- Kevin Qinghong Lin(林庆宏)
- Mike Zheng Shou(指导教授)
- 背景:新加坡国立大学 Show Lab,专注于视频理解和生成研究
- 项目创建时间:2025年
- 学术成果:已被 NeurIPS 2025 的 Deep Learning for Code (DL4C) Workshop 接受
- 理念:用代码创造清晰、美观、可重现的教育视频
项目数据
- ⭐ GitHub Stars: 1.5k+(持续增长中)
- 🍴 Forks: 203+
- 📦 版本: 持续更新中(95+ commits)
- 📄 License: MIT(完全开源,自由使用)
- 🌐 项目网站 : showlab.github.io/Code2Video
- 📄 论文 : arXiv:2510.01174
- 💬 社区: GitHub Issues 活跃,1个开放 Issue
- 👥 贡献者: 3位核心贡献者
项目发展历程:
- 2025年9月:项目创建,发布初始版本
- 2025年9月22日:被 NeurIPS 2025 的 DL4C Workshop 接受
- 2025年10月2日:发布 arXiv 论文、代码和数据集
- 2025年10月3日:在 Twitter 上获得广泛关注
- 2025年10月6日:更新 MMMC 数据集的真实人工制作视频和元数据
- 2025年10月11日:更新图标收集源(从 IconFinder 到 MMMC)
- 2025年11月6日:优化 requirements.txt,安装时间减少80-90%
- 2025年11月25日:达到 1000 stars 里程碑
- 持续维护:项目持续活跃,社区贡献不断
主要功能
核心作用
Code2Video 的核心作用是通过代码自动生成高质量的教学视频,主要功能包括:
- 知识点到视频的自动转换:输入知识点,自动生成完整的教学视频
- 三智能体协同工作:Planner 规划故事板,Coder 生成 Manim 代码,Critic 优化布局和美学
- 可执行代码生成:生成可调试、可修改的 Manim 代码,而非像素级视频
- 多主题支持:支持数学、计算机科学、物理等多个领域的教学主题
- 高质量输出:参考 3Blue1Brown 的标准,生成清晰、美观的教学视频
- 系统性评估:提供知识传递、美学质量、效率等多维度评估
使用场景
Code2Video 适用于多种教育场景:
-
在线课程制作
- 快速为在线课程生成教学视频
- 批量生成多个知识点的视频内容
- 保持视频风格的一致性
-
教育内容创作
- 教育工作者快速制作教学视频
- 将复杂概念可视化
- 创建交互式教学内容
-
研究和评估
- 研究代码驱动视频生成方法
- 评估不同视频生成技术的效果
- 构建教育视频生成基准测试
-
自动化内容生产
- 教育平台批量生成视频内容
- 将文本课程自动转换为视频课程
- 多语言教育内容的快速生成
快速开始
安装方式
Code2Video 的安装需要几个步骤:
bash
# 1. 克隆项目
git clone https://github.com/showlab/Code2Video.git
cd Code2Video/src
# 2. 安装依赖
pip install -r requirements.txt
# 3. 安装 Manim Community v0.19.0
# 参考官方安装指南:https://docs.manim.community/en/stable/installation.html
主要依赖:
manim:数学动画引擎(Manim Community v0.19.0)- LLM API:用于 Planner 和 Coder(推荐 Claude-4-Opus)
- VLM API:用于 Critic(推荐 gemini-2.5-pro-preview-05-06)
- 其他 Python 依赖(见 requirements.txt)
配置 API Keys
在 api_config.json 中配置 API 凭证:
json
{
"LLM_API": {
"provider": "anthropic", // 或其他 LLM 提供商
"api_key": "your-api-key-here",
"model": "claude-4-opus" // 推荐使用 Claude-4-Opus 获得最佳代码质量
},
"VLM_API": {
"provider": "google",
"api_key": "your-api-key-here",
"model": "gemini-2.5-pro-preview-05-06" // 用于布局和美学优化
},
"ICONFINDER_API_KEY": "your-iconfinder-api-key" // 可选,用于丰富视频图标
}
最简单的使用示例
生成单个知识点的视频:
bash
# 使用 run_agent_single.sh 脚本
sh run_agent_single.sh --knowledge_point "Linear transformations and matrices"
这个命令会:
- Planner 智能体规划视频故事板
- Coder 智能体生成 Manim 代码
- Critic 智能体优化布局和美学
- 执行 Manim 代码生成视频
- 保存到
CASES/TEST-single/目录
常用命令示例
bash
# 生成单个知识点视频
sh run_agent_single.sh --knowledge_point "Hanoi Problem"
# 批量生成多个主题(使用 long_video_topics_list.json)
sh run_agent.sh
# 在 run_agent.sh 中可以配置的参数:
# - API: 指定使用的 LLM
# - FOLDER_PREFIX: 输出文件夹前缀(如 TEST-LIST)
# - MAX_CONCEPTS: 包含的概念数量(-1 表示全部)
# - PARALLEL_GROUP_NUM: 并行运行的组数
核心特性
Code2Video 的核心特性包括:
-
代码中心范式
- 使用可执行的 Manim 代码作为视频生成媒介
- 代码可调试、可修改、可重现
- 确保视频的清晰度和连贯性
-
三智能体系统
- Planner:将知识点扩展为详细的故事板
- Coder:根据故事板生成可执行的 Manim 代码
- Critic:使用视觉语言模型优化布局和美学
-
MMMC 基准测试
- 首个代码驱动视频生成的基准测试
- 涵盖 117 个精选学习主题
- 参考 3Blue1Brown 的高质量标准
- 包含真实人工制作视频作为评估标准
-
多维度评估
- 知识传递(TeachQuiz):评估视频的教学效果
- 美学和结构质量(AES):评估视频的视觉质量
- 效率指标:评估 Token 使用和执行时间
-
模块化设计
- 智能体系统可独立使用
- 支持自定义提示模板
- 灵活的配置系统
-
高质量输出
- 参考 3Blue1Brown 的设计标准
- 支持图标和视觉资源集成
- 生成清晰、美观的教学视频
项目优势
与其他视频生成方法相比,Code2Video 的优势:
| 对比项 | Code2Video | 传统文本到视频模型 | 手动制作视频 |
|---|---|---|---|
| 清晰度 | 高(代码生成) | 中低(像素生成) | 高(人工控制) |
| 可重现性 | 完全可重现 | 不可重现 | 可重现但耗时 |
| 可调试性 | 可调试代码 | 不可调试 | 可编辑但复杂 |
| 生成速度 | 快(自动化) | 快 | 慢(人工制作) |
| 成本 | 低(API调用) | 中(计算资源) | 高(人力成本) |
| 一致性 | 高(代码控制) | 中低 | 取决于制作者 |
| 教育适用性 | 专门优化 | 通用但不够清晰 | 高质量但耗时 |
为什么选择 Code2Video?
- ✅ 代码驱动:生成可执行、可调试的代码,而非像素
- ✅ 教育优化:专门为教学视频设计,参考最佳实践
- ✅ 智能体系统:三智能体协同,自动化程度高
- ✅ 系统性评估:提供完整的评估框架和基准测试
- ✅ 学术认可:已被 NeurIPS 2025 接受
- ✅ 开源免费:MIT 许可证,完全开源
项目详细剖析
架构设计
Code2Video 的整体架构采用三智能体协同设计:
scss
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Planner │────▶│ Coder │────▶│ Critic │
│ (故事板) │ │ (代码生成) │ │ (布局优化) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────┐
│ Manim 代码执行和视频生成 │
└─────────────────────────────────────────────────────┘
│
▼
┌─────────────┐
│ 视频输出 │
└─────────────┘
核心流程:
- Planner 阶段:将知识点扩展为详细的故事板,包括场景、动画、说明等
- Coder 阶段:根据故事板生成可执行的 Manim 代码
- Critic 阶段:使用视觉语言模型评估和优化代码的布局和美学
- 执行阶段:运行 Manim 代码生成最终视频
- 评估阶段:使用多维度指标评估视频质量
核心模块分析
1. Planner 智能体
Planner 负责将知识点扩展为详细的故事板:
功能:
- 分析知识点的核心概念
- 规划视频的结构和流程
- 确定需要展示的动画和可视化
- 生成详细的故事板描述
实现方式:
- 使用 LLM(推荐 Claude-4-Opus)进行故事板扩展
- 基于提示模板生成结构化故事板
- 考虑教育视频的最佳实践
2. Coder 智能体
Coder 负责根据故事板生成 Manim 代码:
功能:
- 将故事板转换为 Manim 代码
- 生成可执行的动画代码
- 确保代码的正确性和可读性
- 处理复杂的数学和可视化需求
实现方式:
- 使用 LLM 生成 Manim 代码
- 代码可以直接执行和调试
- 支持 Manim Community v0.19.0 的语法
Manim 代码示例:
python
# 生成的 Manim 代码示例(简化版)
from manim import *
class LinearTransformation(Scene):
def construct(self):
# 创建矩阵
matrix = Matrix([[2, 1], [1, 2]])
self.play(Create(matrix))
# 展示线性变换
vector = Arrow(ORIGIN, [1, 1, 0], buff=0)
self.play(Create(vector))
# 应用变换
transformed = matrix @ vector.get_end()
self.play(Transform(vector, Arrow(ORIGIN, transformed, buff=0)))
3. Critic 智能体
Critic 负责优化代码的布局和美学:
功能:
- 使用视觉语言模型评估生成的代码
- 优化布局和视觉元素的位置
- 确保美学质量和视觉清晰度
- 使用锚点(anchors)进行布局优化
实现方式:
- 使用 VLM(推荐 gemini-2.5-pro-preview-05-06)
- 分析代码生成的视觉效果
- 提供布局优化建议
- 迭代改进代码质量
4. MMMC 基准测试
MMMC(Manim-based Multi-topic Multi-quality Code)是首个代码驱动视频生成的基准测试:
特点:
- 涵盖 117 个精选学习主题
- 参考 3Blue1Brown 的高质量标准
- 包含真实人工制作视频作为评估标准
- 涵盖数学、计算机科学、物理等多个领域
评估维度:
- 知识传递(TeachQuiz):评估视频的教学效果
- 美学和结构质量(AES):评估视频的视觉质量
- 效率指标:Token 使用和执行时间
使用方式:
bash
# 评估知识传递
python3 eval_TQ.py
# 评估美学和结构质量
python3 eval_AES.py
关键技术实现
1. 代码中心范式
Code2Video 的核心创新是使用代码作为视频生成的统一媒介:
优势:
- 可重现性:代码可以重复执行,生成相同的视频
- 可调试性:可以修改代码来调整视频效果
- 清晰度:代码生成的视频比像素生成更清晰
- 可扩展性:可以轻松添加新的动画和效果
实现:
- 使用 Manim 作为代码执行引擎
- 生成的代码符合 Manim Community 标准
- 支持复杂的数学和可视化需求
2. 多智能体协同
三智能体系统通过模块化设计实现协同工作:
Planner → Coder → Critic 流程:
python
# 简化的工作流程
def generate_video(knowledge_point):
# 1. Planner 生成故事板
storyboard = planner.expand(knowledge_point)
# 2. Coder 生成代码
manim_code = coder.generate(storyboard)
# 3. Critic 优化代码
optimized_code = critic.optimize(manim_code)
# 4. 执行代码生成视频
video = execute_manim(optimized_code)
return video
智能体间的信息传递:
- Planner 输出结构化故事板
- Coder 接收故事板,生成代码
- Critic 接收代码,提供优化建议
- 支持迭代优化
3. 提示工程
Code2Video 使用精心设计的提示模板来指导智能体:
提示模板位置 :prompts/ 目录
提示类型:
- Planner 提示:指导故事板扩展
- Coder 提示:指导代码生成
- Critic 提示:指导布局优化
提示优化:
- 基于教育视频最佳实践
- 参考 3Blue1Brown 的设计标准
- 支持自定义和扩展
实际使用案例
案例1:在线数学课程制作
场景:在线教育平台需要为线性代数课程批量生成教学视频。
实现步骤:
bash
# 1. 准备知识点列表(long_video_topics_list.json)
# 包含:线性变换、矩阵运算、特征值等主题
# 2. 配置批量生成脚本
sh run_agent.sh
# 3. 配置参数
# API: claude-4-opus
# FOLDER_PREFIX: LinearAlgebra-Course
# MAX_CONCEPTS: -1 # 生成所有概念
# PARALLEL_GROUP_NUM: 4 # 并行生成4个视频
效果:自动生成一系列风格统一、清晰美观的线性代数教学视频,大大减少人工制作时间。
案例2:计算机科学概念可视化
场景:为"大语言模型原理"主题生成教学视频。
实现步骤:
bash
# 生成单个知识点视频
sh run_agent_single.sh --knowledge_point "Large Language Model"
# 系统会自动:
# 1. Planner 分析LLM的核心概念(注意力机制、Transformer等)
# 2. Coder 生成展示LLM架构的Manim代码
# 3. Critic 优化布局,确保清晰度
# 4. 生成最终视频
效果:生成清晰展示LLM工作原理的视频,包括注意力机制的可视化、Transformer架构的动画等。
案例3:物理概念教学
场景:为傅里叶级数生成教学视频。
实现步骤:
bash
sh run_agent_single.sh --knowledge_point "Pure Fourier Series"
# 生成的视频会展示:
# - 傅里叶级数的数学公式
# - 不同频率分量的叠加过程
# - 从方波到正弦波的分解动画
效果:通过动画直观展示傅里叶级数的数学原理,帮助学生理解抽象概念。
案例4:批量课程内容生成
场景:教育机构需要为多个学科生成教学视频。
实现步骤:
bash
# 1. 准备多学科主题列表
# 数学、物理、计算机科学等117个主题
# 2. 批量生成
sh run_agent.sh
# 3. 使用并行处理加速
PARALLEL_GROUP_NUM=8 # 8个并行任务
效果:快速生成大量高质量教学视频,保持风格一致性,适合大规模在线课程制作。
高级配置技巧
1. 自定义提示模板
Code2Video 使用提示模板来指导智能体,你可以自定义这些模板:
提示模板位置 :prompts/ 目录
自定义 Planner 提示:
python
# prompts/planner_prompt.txt
你是一个教育视频规划专家。请为以下知识点创建详细的故事板:
知识点:{knowledge_point}
要求:
1. 分析知识点的核心概念
2. 规划视频结构(引言、主体、总结)
3. 确定需要展示的动画和可视化
4. 考虑教育视频的最佳实践
5. 参考3Blue1Brown的风格
请生成详细的故事板...
自定义 Coder 提示:
python
# prompts/coder_prompt.txt
你是一个Manim代码生成专家。请根据以下故事板生成Manim代码:
故事板:{storyboard}
要求:
1. 使用Manim Community v0.19.0语法
2. 代码要清晰、可读、可执行
3. 包含必要的动画和可视化
4. 遵循Manim最佳实践
请生成完整的Manim代码...
2. 优化 API 配置
选择最佳 LLM:
json
{
"LLM_API": {
"provider": "anthropic",
"api_key": "your-key",
"model": "claude-4-opus", // 最佳代码质量
"temperature": 0.7, // 控制创造性
"max_tokens": 4000 // 控制输出长度
}
}
配置 VLM 用于 Critic:
json
{
"VLM_API": {
"provider": "google",
"api_key": "your-key",
"model": "gemini-2.5-pro-preview-05-06", // 最佳视觉理解
"temperature": 0.3 // 较低温度确保一致性
}
}
3. 批量生成优化
并行处理配置:
bash
# 在 run_agent.sh 中配置
PARALLEL_GROUP_NUM=8 # 根据CPU核心数调整
# 限制生成数量(用于测试)
MAX_CONCEPTS=10 # 只生成前10个概念
输出组织:
bash
# 使用有意义的文件夹前缀
FOLDER_PREFIX="Math-Course-2026"
# 输出结构:
# CASES/
# └── Math-Course-2026/
# ├── concept_1/
# │ ├── video.mp4
# │ ├── manim_code.py
# │ └── storyboard.json
# └── concept_2/
# └── ...
4. Manim 代码后处理
生成的 Manim 代码可以进一步优化:
python
# 生成的代码示例
from manim import *
class GeneratedVideo(Scene):
def construct(self):
# 可以手动编辑和优化
title = Text("Linear Transformations")
self.play(Write(title))
# ... 更多代码
优化技巧:
- 调整动画时长和缓动函数
- 优化颜色和字体选择
- 添加更多视觉效果
- 改进布局和排版
5. 集成到工作流
Python API 集成:
python
# 在你的 Python 项目中使用
from agent import Code2VideoAgent
# 初始化智能体
agent = Code2VideoAgent(
llm_api_key="your-key",
vlm_api_key="your-key"
)
# 生成视频
video_path = agent.generate_video(
knowledge_point="Linear transformations and matrices",
output_dir="./output"
)
print(f"视频已生成:{video_path}")
自动化脚本:
python
#!/usr/bin/env python3
# auto_generate.py
import subprocess
import json
# 读取主题列表
with open('long_video_topics_list.json', 'r') as f:
topics = json.load(f)
# 批量生成
for topic in topics[:10]: # 生成前10个
knowledge_point = topic['name']
print(f"生成视频:{knowledge_point}")
subprocess.run([
'sh', 'run_agent_single.sh',
'--knowledge_point', knowledge_point
])
print(f"✓ 完成:{knowledge_point}\n")
评估方法详解
1. 知识传递评估(TeachQuiz)
目的:评估视频的教学效果,即学生能否从视频中学习到知识。
评估方法:
bash
# 运行评估脚本
python3 eval_TQ.py
评估流程:
- 为每个视频生成测试题目
- 让学生观看视频后回答问题
- 计算正确率作为知识传递指标
评估指标:
- 正确率:学生答题的正确率
- 理解深度:学生对概念的理解程度
- 知识保留:一段时间后的知识保留率
2. 美学和结构质量评估(AES)
目的:评估视频的视觉质量和结构合理性。
评估方法:
bash
# 运行评估脚本
python3 eval_AES.py
评估维度:
- 视觉清晰度:文字、图形是否清晰
- 布局合理性:元素位置是否合理
- 动画流畅性:动画是否流畅自然
- 整体美观度:视频整体是否美观
评估标准:
- 参考 3Blue1Brown 的视频质量标准
- 使用真实人工制作视频作为基准
- 多维度综合评分
3. 效率指标
目的:评估生成过程的效率和成本。
评估指标:
-
Token 使用量
- Planner 使用的 Token 数
- Coder 使用的 Token 数
- Critic 使用的 Token 数
- 总 Token 使用量
-
执行时间
- 故事板生成时间
- 代码生成时间
- 代码执行时间(Manim 渲染)
- 总生成时间
-
成本估算
- API 调用成本
- 计算资源成本
- 总成本
优化建议:
- 使用更高效的 LLM(如 Claude-4-Opus)
- 优化提示模板减少 Token 使用
- 并行处理提高效率
- 缓存中间结果避免重复计算
4. 与基准对比
Code2Video 在 MMMC 基准测试中与以下方法对比:
| 方法 | 知识传递 | 美学质量 | 生成速度 | 可重现性 |
|---|---|---|---|---|
| Code2Video | 高 | 高 | 中 | 完全可重现 |
| Veo3 | 中 | 中 | 快 | 不可重现 |
| Wan2.2 | 中 | 中 | 快 | 不可重现 |
| 人工制作 | 高 | 高 | 慢 | 可重现但耗时 |
Code2Video 的优势:
- 在知识传递和美学质量上接近人工制作
- 生成速度比人工制作快得多
- 完全可重现,可以调试和优化
- 成本远低于人工制作
与其他视频生成工具的对比
Code2Video vs 传统文本到视频模型
传统文本到视频模型(如 Veo3、Wan2.2):
优势:
- 生成速度快
- 支持多种风格
- 不需要编程知识
劣势:
- 生成视频不可重现
- 清晰度不够高
- 不适合教育场景
- 难以调试和优化
Code2Video:
优势:
- 生成代码可重现、可调试
- 清晰度高,适合教育
- 专门为教学视频优化
- 可以迭代改进
劣势:
- 需要 Manim 环境
- 生成速度相对较慢
- 主要适用于教育场景
Code2Video vs 手动视频制作
手动制作(如使用 After Effects、Premiere):
优势:
- 完全控制每个细节
- 可以创建复杂效果
- 质量最高
劣势:
- 耗时耗力
- 需要专业技能
- 成本高
- 难以批量生产
Code2Video:
优势:
- 自动化程度高
- 可以批量生成
- 成本低
- 风格一致
劣势:
- 灵活性不如手动制作
- 复杂效果支持有限
- 需要调试和优化
适用场景选择
选择 Code2Video 当:
- ✅ 需要批量生成教学视频
- ✅ 要求视频清晰、可重现
- ✅ 需要快速迭代和优化
- ✅ 预算有限但需要高质量
选择传统文本到视频当:
- ✅ 需要快速生成通用视频
- ✅ 不需要可重现性
- ✅ 非教育场景
选择手动制作当:
- ✅ 需要完全控制细节
- ✅ 需要复杂特效
- ✅ 预算充足且时间充裕
常见问题解决
问题1:Manim 安装失败
症状:安装 Manim Community v0.19.0 时出错。
解决方案:
-
检查系统依赖:
bash# Ubuntu/Debian sudo apt-get install build-essential python3-dev libcairo2-dev libpango1.0-dev # macOS brew install cairo pango -
使用虚拟环境:
bashpython3 -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows pip install manim -
参考官方文档:
问题2:API 调用失败
症状:LLM 或 VLM API 调用失败。
解决方案:
-
检查 API Key:
json{ "LLM_API": { "api_key": "your-actual-api-key" // 确保正确 } } -
检查网络连接:
- 确保可以访问 API 服务
- 检查防火墙设置
-
检查 API 配额:
- 确认 API 账户有足够配额
- 检查是否有速率限制
问题3:生成的代码执行失败
症状:Manim 代码生成后执行出错。
解决方案:
-
检查 Manim 版本:
bashmanim --version # 应该是 0.19.0 -
手动调试代码:
python# 查看生成的代码 # CASES/TEST-single/concept_name/manim_code.py # 手动运行测试 manim -pql manim_code.py GeneratedVideo -
检查依赖:
bashpip install -r requirements.txt
问题4:视频质量不理想
症状:生成的视频清晰度或美观度不够。
解决方案:
-
使用更好的 LLM:
- 推荐使用 Claude-4-Opus
- 确保 API 配置正确
-
优化提示模板:
- 在
prompts/目录中自定义提示 - 参考 3Blue1Brown 的风格要求
- 在
-
使用 Critic 优化:
- 确保 VLM API 配置正确
- 使用 gemini-2.5-pro-preview-05-06
-
手动后处理:
- 编辑生成的 Manim 代码
- 调整颜色、字体、布局等
问题5:生成速度慢
症状:视频生成需要很长时间。
解决方案:
-
使用并行处理:
bashPARALLEL_GROUP_NUM=8 # 增加并行数 -
优化 Manim 渲染:
bash# 使用低质量预览 manim -pql # 低质量,快速预览 # 高质量渲染 manim -pqh # 高质量,较慢 -
减少概念数量:
bashMAX_CONCEPTS=5 # 先测试少量概念
问题6:内存不足
症状:生成大型视频时内存溢出。
解决方案:
-
减少视频复杂度:
- 简化故事板
- 减少同时显示的元素
-
分批处理:
bash# 分批生成,避免同时处理太多 MAX_CONCEPTS=10 -
增加系统内存:
- 如果可能,增加系统 RAM
- 使用更强大的机器
项目地址与资源
官方资源
- 🌟 GitHub : github.com/showlab/Cod...
- 🌐 项目网站 : showlab.github.io/Code2Video
适用人群
Code2Video 适合以下人群:
1. 教育工作者和课程设计师
- ✅ 需要快速制作教学视频的教师
- ✅ 在线课程平台的内容创作者
- ✅ 希望将复杂概念可视化的教育工作者
2. 在线教育平台开发者
- ✅ 需要批量生成视频内容的平台
- ✅ 希望自动化内容生产的团队
- ✅ 需要保持视频风格一致性的机构
3. AI 视频生成研究者
- ✅ 研究代码驱动视频生成方法
- ✅ 评估不同视频生成技术
- ✅ 构建教育视频生成基准测试
4. 技术爱好者和开发者
- ✅ 对多智能体系统感兴趣
- ✅ 希望学习代码生成技术
- ✅ 想要探索 AI 在教育中的应用
5. 内容创作者
- ✅ 需要制作教学内容的 YouTuber
- ✅ 希望提高视频制作效率的创作者
- ✅ 需要将知识可视化的博主
总结
Code2Video 是一个创新的代码驱动视频生成框架,它通过可执行的 Manim 代码和多智能体系统,为教育视频生成提供了一个全新的范式。
欢迎来我中的个人主页找到更多有用的知识和有趣的产品