AI Movie Clip – 基于python的智能视频剪辑系统

一个基于人工智能的自动视频剪辑系统,能够自动分析视频内容并根据用户需求生成编辑后的视频。该项目为视频剪辑mcp提供了一个新的研究方向,它使用python脚本来分析和处理视频,同时你可以编辑自己设定的模版进行一键创作。
开源:https://github.com/LumingMelody/Ai-movie-clip
功能特性
- 🎬 视频自动分析:使用CV和ML模型分析视频内容
- 🎨 多样化模板:支持多种视频风格模板(社交媒体、商业、教育等)
- 🤖 AI内容生成:集成文本生成、图像生成和语音合成
- 🎭 特效和转场:丰富的视频效果和转场动画
- 🚀 API服务:提供FastAPI接口,支持批处理
- 🔌 MCP集成:支持Model Context Protocol扩展
快速开始
环境要求
- Python 3.8+
- FFmpeg(用于视频处理)
- CUDA(可选,用于GPU加速)
安装步骤
- 克隆项目
git clone https://github.com/LumingMelody/Ai-movie-clip.git
cd Ai-movie-clip
- 安装依赖
pip install -r requirements.txt
- 配置环境变量
复制环境变量模板并填写您的配置:
cp .env.example .env
编辑 .env
文件,填入您的API密钥:
# AI Model API Keys
DASHSCOPE_API_KEY=your_dashscope_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
# OSS Configuration (Alibaba Cloud)
OSS_ACCESS_KEY_ID=your_oss_access_key_id_here
OSS_ACCESS_KEY_SECRET=your_oss_access_key_secret_here
OSS_BUCKET_NAME=your_bucket_name_here
获取API密钥
- DashScope API Key: 访问 阿里云DashScope控制台
- OpenAI API Key: 访问 OpenAI平台
- OSS配置: 访问 阿里云OSS控制台
使用方法
命令行工具
# 分析视频
python main.py analyze video.mp4 --output analysis.json
# 自动剪辑视频
python main.py edit video.mp4 --duration 30 --style "抖音风"
# 查看更多选项
python main.py --help
Web API服务
# 启动FastAPI服务器
python app.py
# 或
uvicorn app:app --reload
# 访问API文档
# http://localhost:8000/docs
API示例
import requests
# 分析视频
response = requests.post(
"http://localhost:8000/analyze",
files={"file": open("video.mp4", "rb")},
data={"duration": 30}
)
# 生成编辑视频
response = requests.post(
"http://localhost:8000/edit",
json={
"video_path": "path/to/video.mp4",
"template": "douyin",
"duration": 30
}
)
项目结构
Ai-movie-clip/
├── core/ # 核心功能模块
│ ├── orchestrator/ # 工作流编排
│ ├── analyzer/ # 视频分析
│ ├── ai/ # AI模型集成
│ ├── clipeffects/ # 视频特效
│ ├── cliptransition/ # 转场效果
│ ├── clipgenerate/ # AI内容生成
│ └── cliptemplate/ # 视频模板
├── templates/ # Jinja2模板文件
├── config/ # 配置文件
├── main.py # CLI入口
├── app.py # API服务器
└── requirements.txt # 依赖列表
高级功能
自定义模板
在 templates/
目录下创建新的模板文件:
# templates/custom/my_template.j2
产品名称:{{ product_name }}
特点:{{ features }}
价格:{{ price }}
扩展AI模型
在 core/ai/ai_model_caller.py
中添加新的模型:
def call_custom_model(prompt):
# 实现您的模型调用逻辑
pass
其它
该项目属于新的,还有很多不完善的地方,但提供的思路是好的,如将提示词精炼后给到大模型时ai执行指令调用工具剪辑的流程
示例提示词模板(给大模型的prompt):
你是一个智能视频剪辑助手。现在我给你以下信息:
视频内容类型:{content_type}
视频片段数量:{num_videos}
视频分析结果:
- 场景切换频繁程度:{scene_change_freq}
- 是否包含人声:{has_speech}
- 是否包含人脸:{face_present}
- 主要对象:{main_objects}
请根据以上信息,生成一个适合该类型视频的剪辑策略,并输出具体的函数调用指令。
你的输出格式如下:
{
"thought_process": [
"第一步:识别出视频高潮部分在第10-15秒。",
"第二步:裁剪冗余开头和结尾。",
...
],
"actions": [
{"function": "cut", "start": 0, "end": 5},
{"function": "add_transition", "type": "fade", "start": 5, "duration": 1},
...
]
}
调用工具执行剪辑(使用 FFmpeg + Python)
支持的函数示例:
函数名 | 参数 | 功能 |
---|---|---|
cut(start, end) | 开始时间、结束时间 | 裁剪片段 |
add_transition(type, start, duration) | 类型、开始时间、持续时间 | 添加转场 |
speedup(start, end, factor) | 区间、加速倍数 | 加速播放 |
apply_filter(filter_name, start, end) | 滤镜名称、区间 | 应用滤镜 |
concatenate(clips) | 片段列表 | 合并多个片段 |
示例调用(使用 subprocess 调用 FFmpeg):
import subprocess
def cut_video(input_path, output_path, start, end):
cmd = f"ffmpeg -i {input_path} -ss {start} -to {end} -c copy {output_path}"
subprocess.run(cmd, shell=True)
通过完善不同的工作流就有了初步的mcp化功能,你可以拿这个项目作进一步的完善和研究