Skip to content

qingningLime/MADvolution_2

Repository files navigation

🎬 MADvolution2_剪辑跃迁: 智能AI视频剪辑生成工具

GitHub Stars License

✨ 全自动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[成品视频输出]
Loading

⚡ 快速开始

🛠️ 1. 准备工作

  1. ✅ 安装Python 3.8+和FFmpeg
  2. ⚙️ 下载安装Ollama并加载模型:
    curl -fsSL https://ollama.ai/install.sh | sh
    ollama run minicpm-v
  3. 🔑 获取DeepSeek API密钥

🚀 2. 快速体验

# 安装依赖
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.mp4

🖥️ 3. 图形界面(可选)

python src/main_gui.py

💡 首次运行需在设置中配置模型参数

🔧 二、环境搭建指南

💻 2.1 系统要求

🖥️ 系统类型 📌 支持版本 ⚙️ 硬件建议
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芯片+

📦 2.2 必备软件安装

🔹 基础依赖

软件 安装方法

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
    • 配置
      1. 启动Ollama服务:
        ollama serve
      2. 下载视觉模型(首次使用自动下载):
        ollama run minicpm-v
      3. 确保config.json中的base_url设置为http://localhost:11434
  • GPU加速(可选但推荐)

2.2.2 Python依赖

  • 通过脚本自动安装

    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环境)
    PyQt5 GUI界面开发(暂未完全启用)

⚙️ 三、文件配置详解

📄 3.1 核心配置文件 config.json

📍 路径: src/config.json
🔧 需用户手动配置的关键参数:

3.1.1 Ollama本地模型配置(图像分析)

"ollama": {
  "base_url": "http://localhost:11434",  // Ollama服务地址,需提前启动Ollama客户端
  "embedding_model": "shaw/dmeta-embedding-zh",  // 中文图像Embedding模型(默认已适配)
  "model_name": "minicpm-v"  // 多模态模型名称(支持minicpm-v、llava等)
}
  • 启动Ollama服务
    1. 下载并安装Ollama
    2. 启动命令行:
      ollama run minicpm-v  # 加载视觉模型(首次运行会自动下载,约4GB)

3.1.2 DeepSeek云端API配置(语言分析)

"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密钥
    1. 注册DeepSeek账号
    2. 在“控制台-API密钥”页面创建新密钥,填入此处。

3.1.3 分析参数配置

"prompt": "这是动漫视频某片段的5张连续截图...",  // 图像分析提示词(控制输出格式,建议保留默认)
"max_concurrent_frames": 1,  // 并发分析帧数(GPU显存不足时调小,如1)
"processing_interval": 2.0,  // 处理间隔(秒,避免API频率限制)
"rag": {
  "chunk_size": 1000,  // 文本分块大小(用于长文本分析)
  "top_k": 3  // 检索返回结果数
}

3.2 其他配置文件

  • 音乐分析配置src/music_config.py
    可调整音频采样率、节拍检测敏感度等参数,一般无需修改。
  • 提示词模板mad剪辑提示词/目录
    • 系统提示词.txt:核心分析逻辑提示词,修改可能影响结果准确性。
    • 提示词.txt:用户可自定义剪辑风格(如“添加赛博朋克滤镜”“加快副歌部分节奏”)。

🎥 四、操作流程指南

📂 4.1 输入文件准备

🗂️ 4.1.1 目录结构说明

输入目录结构
graph TD
    A[input/] --> B[music_input/]
    A --> C[video_input/]
    A --> D[视频批处理/]
    D --> E[视频/]
    D --> F[字幕/]
Loading
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工作目录
ai分析数据/            # 分析报告汇总
├── Music_report.md    # 音乐情感分析
└── combined_reports.md # 合并报告

ai剪辑脚本/            # 生成的剪辑脚本
└── mad_script.md      # 时间轴/画面/歌词匹配

ai切割素材/            # 视频片段缓存
└── mad_script/        # 按脚本生成的片段

4.1.2 文件要求

  • 视频文件
    • 单文件处理:放置于video_input/,支持MP4/MKV/AVI等格式,建议分辨率≥1080p。
    • 批量处理:在视频批处理/视频中放置多个视频,系统自动按集数匹配字幕(需将字幕放入视频批处理/字幕)。
  • 背景音乐:仅支持单首音乐,需与视频风格匹配(如热血音乐对应战斗场景)。

4.2 运行步骤(以单文件为例)

4.2.1 第一步:视频内容分析

# 命令行运行
python src/video_analyzer.py

# 或通过GUI启动(推荐)
python src/main_gui.py  # 点击“视频批量分析工具”按钮
  • 执行逻辑
    1. 提取视频关键帧(每5秒1帧,GPU加速)。
    2. 调用Ollama模型分析画面内容,生成output/视频名/report.txt
    3. 自动识别字幕(若有),生成时间轴文件。

4.2.2 第二步:音乐特征分析

python src/music_analyzer.py
  • 执行逻辑
    1. 解析音乐节拍、频谱,生成output_Music/故事板.json
    2. 分析歌词情感,生成ai分析数据/Music_report.md

4.2.3 第三步:生成剪辑脚本

python src/mad_script_generator.py
  • 交互说明
    输入剪辑需求(如“制作燃向MAD,重点突出战斗画面”),按提示输入q结束。
  • 输出结果
    ai剪辑脚本/mad_script.md,包含时间轴、歌词匹配、画面描述三列。

4.2.4 第四步:自动化剪辑

# 切割视频片段
python src/auto_cut_video.py

# 合并片段并添加音乐
python src/video_merger.py
  • 结果存储
    最终视频存于最终输出视频/歌曲名/歌曲名_final.mp4,支持二次剪辑。

4.3 批量处理流程(高级功能)

python src/batch_video_processor.py
  • 适用场景:处理多集动漫(如番剧第1-12集)。
  • 操作要点
    1. 视频批处理/视频中放置多集MKV文件,命名格式需包含集数(如第01集.mkv)。
    2. 字幕文件需与视频同名(如第01集.ass),放置于视频批处理/字幕
    3. 系统自动按集分析,生成合并后的长视频脚本。

🛠️ 五、工具链使用说明

🧹 5.1 缓存清理工具

python src/clear_cache.py

功能:

  • 🗑️ 清理临时分析文件 (output/)
  • 🖼️ 清除视频帧缓存 (temp_frames/)
  • ✂️ 移除旧剪辑片段 (ai切割素材/)

💡 建议: 每次完成剪辑后执行

5.2 报告合并工具

python src/combine_reports.py
  • 功能
    1. 合并ai视频识别报告/下的所有.txt文件为ai分析数据/combined_reports.md
    2. 自动按时间顺序排列,添加章节分隔符。

❓ 六、常见问题与解决方案

🔴 6.1 模型调用失败

症状:

ERROR: 无法连接到Ollama服务

解决方案:

  1. 检查Ollama服务状态:
    ollama serve
  2. 验证config.json配置:
    "base_url": "http://localhost:11434"
  3. 防火墙设置:
    # Linux
    sudo ufw allow 11434

6.2 剪辑脚本内容混乱

  • 现象:生成的脚本时间轴跳跃或画面与歌词不匹配。
  • 解决
    1. 调整config.json中的prompt提示词,明确需求(如“优先选择人物特写画面”)。
    2. mad剪辑提示词/提示词.txt中添加更具体的规则(如“副歌部分使用快节奏剪辑”)。

6.3 视频导出失败

  • 现象video_merger.py报错“找不到视频片段”。
  • 解决
    1. 确认ai切割素材/目录下存在按脚本生成的MP4片段。
    2. 检查FFmpeg路径是否正确(可重新运行install_deps.py修复)。

七、进阶技巧

7.1 自定义模型

  • 更换视觉模型
    在Ollama中运行其他支持图像的模型(如ollama run llava),并修改config.jsonmodel_namellava
  • 使用本地大语言模型
    替换ai_auto_processor.model为本地部署的模型(如LLaMA-2),需自行配置服务地址。

7.2 高级剪辑控制

  • 调整脚本格式
    mad_script.md中手动修改时间轴(格式需保持Markdown表格),重新运行auto_cut_video.py
  • 添加转场特效
    video_merger.py中修改FFmpeg参数(如添加-vf "fade=type=out:st=0:d=2"),详见FFmpeg转场文档

八、贡献与反馈

  • 代码贡献
    1. Fork本仓库,创建新分支(如feature/add-new-model)。
    2. 提交PR时需包含测试用例及文档更新。
  • 问题反馈
    在GitHub Issues中提交模板:
    [BUG/功能请求] 标题  
    环境:Windows 11 + Python 3.10  
    描述:执行xxx步骤时报错xxx  
    复现步骤:1. ... 2. ...  
    截图/日志:(如有)  
    

📜 九、许可证与声明

⚖️ MIT 许可证

© 2025 MADvolution_2 | 开发者 Lime

特此免费授予任何获得本软件及相关文档文件(以下简称"软件")副本的人无限制使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。

本软件按"原样"提供,不提供任何明示或暗示的担保,包括但不限于对适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他行为中产生的,还是与软件或软件的使用或其他交易相关的。

免责声明

  1. 请仅用于合法用途,禁止传播侵权内容。
  2. 开发者不对因使用本工具导致的任何法律纠纷负责。

其他

该项目的潜力不止于此,只需要稍微修改,便可以使用ai用于减轻剪辑时的压力。 在商业项目中可以通过使用ai字幕工具提取不需要的空白内容,提取碎片化的片段。 亦可以在剪辑过程中,您可以让ai裁剪素材并输出合并的内容,为您的剪辑提供灵感,或者轻度剪辑,减轻您的难度。

非常感谢您看到这里,如果您对这个项目感兴趣,欢迎您为我点个⭐,不管怎样,谢谢您!

📌 获取最新版本: GitHub Release
📧 联系我们: QQ 3447131904


感谢使用 MADvolution_2!
🐛 发现问题? 欢迎提交 Issue

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages