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

1754825674517

一个基于人工智能的自动视频剪辑系统,能够自动分析视频内容并根据用户需求生成编辑后的视频。该项目为视频剪辑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. 克隆项目
1
2
git clone https://github.com/LumingMelody/Ai-movie-clip.git
cd Ai-movie-clip
  1. 安装依赖
1
pip install -r requirements.txt
  1. 配置环境变量

复制环境变量模板并填写您的配置:

1
cp .env.example .env

编辑 .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

1754825890851

获取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化功能,你可以拿这个项目作进一步的完善和研究