✨ 全自动AI视频剪辑工具 | 🚀 一键生成专业MAD视频 | 🤖 多模态AI驱动
MADvolution_2 是一款基于AI技术的全自动MAD视频生成工具,支持从视频内容分析、音乐节奏解析到智能剪辑脚本生成、视频导出的全流程自动化。
🔹 核心功能:
- 🖼️ 多模态AI视频分析 (Ollama视觉模型)
- 🎵 智能音乐节奏匹配 (Librosa音频分析)
- ✂️ 自动化剪辑脚本生成 (DeepSeek语言模型)
- 🎥 一键导出成品视频 (FFmpeg集成)
🔹 技术优势:
graph LR
A[视频输入] --> B[AI场景分析]
B --> C[音乐特征提取]
C --> D[智能剪辑脚本]
D --> E[自动化剪辑]
E --> F[成品视频输出]
- ✅ 安装Python 3.8+和FFmpeg
- ⚙️ 下载安装Ollama并加载模型:
curl -fsSL https://ollama.ai/install.sh | sh ollama run minicpm-v - 🔑 获取DeepSeek API密钥
# 安装依赖
cd src && python install_deps.py
```markdown
# 准备素材
# 将视频放入input/video_input/
# 将音乐放入input/music_input/
# 运行全流程
#批量处理视频内容(需要在批处理视频中放入视频内容和字幕内容)
python src/batch_video_processor.py
#整理音乐分镜(在music_input中放入音乐)
python src/music_analyzer.py
#生成剪辑脚本
python src/mad_script_generator.py
#视频切割
python src/auto_cut_video.py
#视频合并
python src/video_merger.py
# 结果在: 最终输出视频/歌曲名/歌曲名_final.mp4python src/main_gui.py💡 首次运行需在设置中配置模型参数
| 🖥️ 系统类型 | 📌 支持版本 | ⚙️ 硬件建议 |
|---|---|---|
| Windows | 10/11(64位) | NVIDIA RTX 1650+/AMD RX 6600+ 8GB内存(需CUDA或ROCM支持) |
| Linux | Ubuntu 20.04+/Debian 11+ | CUDA 11.8+ |
| macOS | Ventura 13+ | M1芯片+ |
| 软件 | 安装方法 |
|---|---|
|
Python 3.8+ |
# Windows/Linux
https://www.python.org/downloads/
# macOS
brew install python@3.10 |
|
FFmpeg |
# Windows
choco install ffmpeg
# Linux
sudo apt install ffmpeg
# macOS
brew install ffmpeg |
-
Ollama(AI模型运行环境)
- 安装:
- 所有平台:从Ollama官网下载安装包
- 或通过命令行安装:
curl -fsSL https://ollama.ai/install.sh | sh
- 配置:
- 启动Ollama服务:
ollama serve
- 下载视觉模型(首次使用自动下载):
ollama run minicpm-v
- 确保
config.json中的base_url设置为http://localhost:11434
- 启动Ollama服务:
- 安装:
-
GPU加速(可选但推荐)
- NVIDIA显卡:需安装CUDA Toolkit 11.8+及对应驱动,安装后重启。
- AMD显卡:需安装ROCm 5.7+/HIP及对应驱动,安装后重启。
-
通过脚本自动安装:
cd src python install_deps.py # 自动安装所有Python依赖(需联网)
- 若安装失败,可手动安装:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
- 若安装失败,可手动安装:
-
依赖说明:
库名 用途 ollama调用本地多模态模型(如LLaVA) openai调用DeepSeek等云端API librosa音乐特征提取(节拍、频谱分析) moviepy视频剪辑基础库 faiss-gpu向量检索(需CUDA或rocm环境) PyQt5GUI界面开发(暂未完全启用)
📍 路径: src/config.json
🔧 需用户手动配置的关键参数:
"ollama": {
"base_url": "http://localhost:11434", // Ollama服务地址,需提前启动Ollama客户端
"embedding_model": "shaw/dmeta-embedding-zh", // 中文图像Embedding模型(默认已适配)
"model_name": "minicpm-v" // 多模态模型名称(支持minicpm-v、llava等)
}- 启动Ollama服务:
- 下载并安装Ollama。
- 启动命令行:
ollama run minicpm-v # 加载视觉模型(首次运行会自动下载,约4GB)
"ai_auto_processor": {
"api_key": "your-deepseek-api-key", // 需在DeepSeek官网申请
"base_url": "https://api.deepseek.com", // 官方API地址
"model": "deepseek-chat" // 使用的语言模型(支持deepseek-chat、gpt-4等)
}- 获取API密钥:
- 注册DeepSeek账号。
- 在“控制台-API密钥”页面创建新密钥,填入此处。
"prompt": "这是动漫视频某片段的5张连续截图...", // 图像分析提示词(控制输出格式,建议保留默认)
"max_concurrent_frames": 1, // 并发分析帧数(GPU显存不足时调小,如1)
"processing_interval": 2.0, // 处理间隔(秒,避免API频率限制)
"rag": {
"chunk_size": 1000, // 文本分块大小(用于长文本分析)
"top_k": 3 // 检索返回结果数
}- 音乐分析配置:
src/music_config.py
可调整音频采样率、节拍检测敏感度等参数,一般无需修改。 - 提示词模板:
mad剪辑提示词/目录系统提示词.txt:核心分析逻辑提示词,修改可能影响结果准确性。提示词.txt:用户可自定义剪辑风格(如“添加赛博朋克滤镜”“加快副歌部分节奏”)。
graph TD
A[input/] --> B[music_input/]
A --> C[video_input/]
A --> D[视频批处理/]
D --> E[视频/]
D --> F[字幕/]
input/
├── music_input/ # [必填]背景音乐目录
│ └── *.flac/.mp3 # 支持FLAC/MP3格式,中文文件名
│ # 要求:单首音乐,与视频风格匹配
│
├── video_input/ # [选填]单视频处理目录
│ └── 视频名.mkv # 推荐MKV/MP4格式,分辨率≥1080p
│ # 支持内嵌字幕,自动识别时间轴
│
└── 视频批处理/ # [选填]批量视频处理目录
├── 视频/ # 存放多集视频文件
│ └── 第01集.mkv # 命名需包含集数(如"第01集")
│
└── 字幕/ # [可选]对应字幕文件
└── 第01集.ass # 需与视频文件同名
output/ # 视频分析临时文件
├── 视频名/ # 每部视频单独目录
│ ├── frames/ # 提取的关键帧
│ └── report.txt # 场景分析报告
│
output_Music/ # 音乐分析结果
│ └── 故事板.json # 节拍/歌词时间轴
最终输出视频/ # 成品视频
└── 歌曲名/ # 按音乐分类
└── 歌曲名_final.mp4 # 最终视频文件
ai分析数据/ # 分析报告汇总
├── Music_report.md # 音乐情感分析
└── combined_reports.md # 合并报告
ai剪辑脚本/ # 生成的剪辑脚本
└── mad_script.md # 时间轴/画面/歌词匹配
ai切割素材/ # 视频片段缓存
└── mad_script/ # 按脚本生成的片段
- 视频文件:
- 单文件处理:放置于
video_input/,支持MP4/MKV/AVI等格式,建议分辨率≥1080p。 - 批量处理:在
视频批处理/视频中放置多个视频,系统自动按集数匹配字幕(需将字幕放入视频批处理/字幕)。
- 单文件处理:放置于
- 背景音乐:仅支持单首音乐,需与视频风格匹配(如热血音乐对应战斗场景)。
# 命令行运行
python src/video_analyzer.py
# 或通过GUI启动(推荐)
python src/main_gui.py # 点击“视频批量分析工具”按钮- 执行逻辑:
- 提取视频关键帧(每5秒1帧,GPU加速)。
- 调用Ollama模型分析画面内容,生成
output/视频名/report.txt。 - 自动识别字幕(若有),生成时间轴文件。
python src/music_analyzer.py- 执行逻辑:
- 解析音乐节拍、频谱,生成
output_Music/故事板.json。 - 分析歌词情感,生成
ai分析数据/Music_report.md。
- 解析音乐节拍、频谱,生成
python src/mad_script_generator.py- 交互说明:
输入剪辑需求(如“制作燃向MAD,重点突出战斗画面”),按提示输入q结束。 - 输出结果:
ai剪辑脚本/mad_script.md,包含时间轴、歌词匹配、画面描述三列。
# 切割视频片段
python src/auto_cut_video.py
# 合并片段并添加音乐
python src/video_merger.py- 结果存储:
最终视频存于最终输出视频/歌曲名/歌曲名_final.mp4,支持二次剪辑。
python src/batch_video_processor.py- 适用场景:处理多集动漫(如番剧第1-12集)。
- 操作要点:
- 在
视频批处理/视频中放置多集MKV文件,命名格式需包含集数(如第01集.mkv)。 - 字幕文件需与视频同名(如
第01集.ass),放置于视频批处理/字幕。 - 系统自动按集分析,生成合并后的长视频脚本。
- 在
python src/clear_cache.py✅ 功能:
- 🗑️ 清理临时分析文件 (
output/) - 🖼️ 清除视频帧缓存 (
temp_frames/) - ✂️ 移除旧剪辑片段 (
ai切割素材/)
💡 建议: 每次完成剪辑后执行
python src/combine_reports.py- 功能:
- 合并
ai视频识别报告/下的所有.txt文件为ai分析数据/combined_reports.md。 - 自动按时间顺序排列,添加章节分隔符。
- 合并
症状:
ERROR: 无法连接到Ollama服务解决方案:
- 检查Ollama服务状态:
ollama serve
- 验证
config.json配置:"base_url": "http://localhost:11434"
- 防火墙设置:
# Linux sudo ufw allow 11434
- 现象:生成的脚本时间轴跳跃或画面与歌词不匹配。
- 解决:
- 调整
config.json中的prompt提示词,明确需求(如“优先选择人物特写画面”)。 - 在
mad剪辑提示词/提示词.txt中添加更具体的规则(如“副歌部分使用快节奏剪辑”)。
- 调整
- 现象:
video_merger.py报错“找不到视频片段”。 - 解决:
- 确认
ai切割素材/目录下存在按脚本生成的MP4片段。 - 检查FFmpeg路径是否正确(可重新运行
install_deps.py修复)。
- 确认
- 更换视觉模型:
在Ollama中运行其他支持图像的模型(如ollama run llava),并修改config.json的model_name为llava。 - 使用本地大语言模型:
替换ai_auto_processor.model为本地部署的模型(如LLaMA-2),需自行配置服务地址。
- 调整脚本格式:
在mad_script.md中手动修改时间轴(格式需保持Markdown表格),重新运行auto_cut_video.py。 - 添加转场特效:
在video_merger.py中修改FFmpeg参数(如添加-vf "fade=type=out:st=0:d=2"),详见FFmpeg转场文档。
- 代码贡献:
- Fork本仓库,创建新分支(如
feature/add-new-model)。 - 提交PR时需包含测试用例及文档更新。
- Fork本仓库,创建新分支(如
- 问题反馈:
在GitHub Issues中提交模板:[BUG/功能请求] 标题 环境:Windows 11 + Python 3.10 描述:执行xxx步骤时报错xxx 复现步骤:1. ... 2. ... 截图/日志:(如有)
© 2025 MADvolution_2 | 开发者 Lime
特此免费授予任何获得本软件及相关文档文件(以下简称"软件")副本的人无限制使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
本软件按"原样"提供,不提供任何明示或暗示的担保,包括但不限于对适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他行为中产生的,还是与软件或软件的使用或其他交易相关的。
- 请仅用于合法用途,禁止传播侵权内容。
- 开发者不对因使用本工具导致的任何法律纠纷负责。
该项目的潜力不止于此,只需要稍微修改,便可以使用ai用于减轻剪辑时的压力。 在商业项目中可以通过使用ai字幕工具提取不需要的空白内容,提取碎片化的片段。 亦可以在剪辑过程中,您可以让ai裁剪素材并输出合并的内容,为您的剪辑提供灵感,或者轻度剪辑,减轻您的难度。
非常感谢您看到这里,如果您对这个项目感兴趣,欢迎您为我点个⭐,不管怎样,谢谢您!