MCP视频编辑器(Go)
一种高性能的模型上下文协议(MCP)服务器,用于使用FFmpeg进行专业视频编辑操作。在Go中实现了速度、可靠性和易于部署。
🚀 快速开始
安装
# Clone the repository
git clone https://github.com/chandler767/mcp-video-editor.git
cd mcp-video-editor
# Build the binary
go build -o bin/mcp-video-editor ./cmd/mcp-video-editor
# Run the server
./bin/mcp-video-editor需求
- 转到1.23+ (从源头建设)
- FFmpeg 安装在您的系统上
- macOS: brew install ffmpeg - Ubuntu/Debian: sudo apt-get install ffmpeg - Windows:从下载 ffmpeg.org
📦 特性
核心视频操作(10个工具)
- 获取_视频_信息 -提取元数据(持续时间、分辨率、编解码器、帧率、比特率)
- trim_video -按开始/结束时间剪切视频片段
- 拼接视频 -将多个视频合并在一起
- 提取音频 -保存视频中的音轨
- 视频转换 -使用自定义质量设置在格式之间转换
- resize_video -更改视频分辨率/尺寸
- 提取帧 -以特定的时间戳或间隔获取屏幕截图
- 调整_速度 -加快或减慢播放速度
- transcoder_for_web -优化网络共享视频
- get_config/set_config/reset_config -配置管理
视觉效果(7工具)
- 应用_模糊_效果 -高斯、长方体、运动、径向模糊
- 应用_颜色_等级 -亮度、对比度、饱和度、温度、色调
- appy_chroma_key -移除绿屏
- 苹果_肯_伯恩斯 -静止图像的缩放/平移效果
- 苹果_小插图 -边缘变暗效果
- 应用程序_锐化 -通过可调节的强度锐化视频
合成(3个工具)
- 创建图片 -用可定制的位置叠加较小的视频
- create_split_screen -多种布局(水平、垂直、2x2、3x3网格)
过渡(2个工具)
- add_transition -25+过渡类型(褪色、擦拭、滑动、溶解等)
- 交叉视频 -平滑的视频和音频交叉渲染
文本和叠加(5个工具)
- add_text_overlay -带有定位功能的静态文本叠加
- add_animated_text -带有效果的动画文本
- burn_subtitles -从SRT文件中嵌入字幕
- add_image_overlay -具有定位和不透明度的图像叠加
- add_shape -绘制形状(矩形、圆形、直线)
音频操作(5个工具)
- 提取音频 -将音频提取到单独的文件
- adjust_体积 -更改音量
- 正常化_音频 -使音频级别标准化
- fade_音频 -淡入/淡出
- remove_audio -删除音轨
时间线系统(8个工具)
- create_timeline -为多操作编辑创建新的时间线
- add_to_teline -时间线上的排队操作
- 取消操作 -撤消上次操作
- 重做操作 -重做未完成的操作
- view_timeline -查看时间线状态和历史记录
- 跳跃时间线点 -跳转到时间线中的特定点
- list_timelines -列出所有时间线
- get_timeline_stats -获取时间线统计信息
多镜头编辑(8个工具)
- 创建_多目标_项目 -创建项目以管理多次拍摄
- add_takes_to-project -将视频片段添加到项目中
- 分析镜头 -分析所有拍摄的质量
- get_project_analysis -获取详细的分析结果
- 选择_测试_拍摄 -自动选择最佳拍摄
- assembly_best_takes -根据最佳拍摄结果组装最终视频
- 导出最终视频 -导出最终组装视频
- list_multi_take_projects -列出所有项目
AI视觉分析(5种工具)-需要OpenAI API密钥
- 分析视频内容 -获取逐帧描述和摘要
- 搜索_视觉内容 -查找特定对象、人物、场景或文本
- 描述场景 -获取特定时间戳的详细描述
- 查找对象_视频 -跟踪特定对象出现的时间
- 比较视频帧 -检测两个时刻之间的变化
图表生成(4个工具)
- generate_流程图 -根据数据创建流程图
- generate_timeline -创建时间线图
- generate_org_chart -创建组织结构图
- generate_mind_map -创建思维导图
总计:60个MCP工具
🛡️ 安全特性
- 源文件保护 -原始文件永远不会被修改
- 覆盖检测 -防止意外使用相同的输入/输出路径
- 质量匹配 -输出自动匹配输入质量
- 类型安全操作 -Go的类型系统可防止常见错误
📊 测试
运行综合测试套件:
# Run all tests
go test ./...
# Run with verbose output
go test -v ./...
# Run specific package tests
go test -v ./pkg/video
go test -v ./pkg/visual
go test -v ./pkg/server测试覆盖范围:
- ✅ 19项综合测试
- ✅ 100%通过率
- ✅ 测试包括视频操作、视觉效果和MCP处理程序
🔧 配置
配置文件: ~/.mcp-video-config.json
{
"ffmpegPath": "/usr/local/bin/ffmpeg",
"ffprobePath": "/usr/local/bin/ffprobe",
"openaiApiKey": "sk-...",
"defaultQuality": "medium",
"tempDir": "/tmp/mcp-video"
}环境变量:
OPENAI_API_KEY-用于视觉分析和转录功能FFMPEG_PATH-自定义FFmpeg二进制路径FFPROBE_PATH-自定义FFprobe二进制路径
📖 文档
- README-GO.md -详细的Go实现指南
- GO-TEST报告.md -综合测试结果
- GO-PORT-SUMMARY.md -港口完工详情
- TRANSCRIPT_FEATURES.md -成绩单编辑指南
- 视觉.md -视觉分析指南
🏗️ 建筑
mcp-video-editor/
├── cmd/
│ └── mcp-video-editor/ # Main application
├── pkg/
│ ├── config/ # Configuration management
│ ├── ffmpeg/ # FFmpeg wrapper
│ ├── video/ # Video operations
│ ├── visual/ # Visual effects, compositing, transitions
│ ├── text/ # Text overlays
│ ├── timeline/ # Timeline management
│ ├── transcript/ # Transcription
│ ├── vision/ # GPT-4 Vision analysis
│ ├── multitake/ # Multi-take editing
│ ├── diagrams/ # Diagram generation
│ ├── elements/ # Visual elements
│ └── server/ # MCP server
├── go.mod # Go module definition
└── bin/
└── mcp-video-editor # Compiled binary (9.3 MB)🚀 演出
- 二进制大小: 9.3 MB(自包含,无依赖关系)
- 内存效率: 最小内存占用
- 快速启动: \<1秒初始化
- 并发处理: 高效处理多种操作
📝 示例用法
通过MCP客户端(克劳德)
User: "Trim my video.mp4 from 10 to 30 seconds"
Claude: [Uses trim_video tool]
User: "Add a blur effect to output.mp4"
Claude: [Uses apply_blur_effect tool]
User: "Create a split screen with video1.mp4 and video2.mp4"
Claude: [Uses create_split_screen tool]API直接使用
package main
import (
"context"
"github.com/chandler-mayo/mcp-video-editor/pkg/video"
"github.com/chandler-mayo/mcp-video-editor/pkg/ffmpeg"
)
func main() {
ffmpegMgr, _ := ffmpeg.NewManager("ffmpeg", "ffprobe")
videoOps := video.NewOperations(ffmpegMgr)
// Trim video
videoOps.Trim(context.Background(), video.TrimOptions{
Input: "input.mp4",
Output: "output.mp4",
StartTime: 10.0,
EndTime: &[]float64{30.0}[0],
})
}🤝 贡献
欢迎投稿!请确保在提交PR之前通过所有测试:
go test ./...
go build -o bin/mcp-video-editor ./cmd/mcp-video-editor📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件
🙏 致谢
- 建于 mark3labs/mcp go
- 由...驱动 FFmpeg
- OpenAI集成通过 去开
______________________________________________________________________
状态: ✅ 生产就绪| 版本: 1.0.0 | 测验: 19/19传球
