发现安利AI剪辑AI Movie Clip - 基于python的智能视频剪辑系统
noise
一个基于人工智能的自动视频剪辑系统,能够自动分析视频内容并根据用户需求生成编辑后的视频。该项目为视频剪辑mcp提供了一个新的研究方向,它使用python脚本来分析和处理视频,同时你可以编辑自己设定的模版进行一键创作。
开源:https://github.com/LumingMelody/Ai-movie-clip
功能特性
- 🎬 视频自动分析:使用CV和ML模型分析视频内容
- 🎨 多样化模板:支持多种视频风格模板(社交媒体、商业、教育等)
- 🤖 AI内容生成:集成文本生成、图像生成和语音合成
- 🎭 特效和转场:丰富的视频效果和转场动画
- 🚀 API服务:提供FastAPI接口,支持批处理
- 🔌 MCP集成:支持Model Context Protocol扩展
快速开始
环境要求
- Python 3.8+
- FFmpeg(用于视频处理)
- CUDA(可选,用于GPU加速)
安装步骤
- 克隆项目
1 2
| git clone https://github.com/LumingMelody/Ai-movie-clip.git cd Ai-movie-clip
|
- 安装依赖
1
| pip install -r requirements.txt
|
- 配置环境变量
复制环境变量模板并填写您的配置:
编辑 .env
文件,填入您的API密钥:
1 2 3 4 5 6 7 8
| # 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密钥
使用方法
命令行工具
1 2 3 4 5 6 7 8
| # 分析视频 python main.py analyze video.mp4 --output analysis.json
# 自动剪辑视频 python main.py edit video.mp4 --duration 30 --style "抖音风"
# 查看更多选项 python main.py --help
|
Web API服务
1 2 3 4 5 6 7
| # 启动FastAPI服务器 python app.py # 或 uvicorn app:app --reload
# 访问API文档 # http://localhost:8000/docs
|
API示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 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 } )
|
项目结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 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/
目录下创建新的模板文件:
1 2 3 4
| # templates/custom/my_template.j2 产品名称:{{ product_name }} 特点:{{ features }} 价格:{{ price }}
|
扩展AI模型
在 core/ai/ai_model_caller.py
中添加新的模型:
1 2 3
| def call_custom_model(prompt): # 实现您的模型调用逻辑 pass
|
其它
该项目属于新的,还有很多不完善的地方,但提供的思路是好的,如将提示词精炼后给到大模型时ai执行指令调用工具剪辑的流程
示例提示词模板(给大模型的prompt):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 你是一个智能视频剪辑助手。现在我给你以下信息:
视频内容类型:{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):
1 2 3 4 5
| 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化功能,你可以拿这个项目作进一步的完善和研究