Ffmpeg_python_mcp について
Ffmpeg_python_mcpは、FFmpegによる音声・動画処理をAIアシスタントに提供するMCPサーバーです。編集やストリーム処理に加え、非同期実行とハードウェアアクセラレーションに対応しています。
主な機能
- 01音声・動画形式の変換
- 02メディアの分割と結合
- 03透かし・GIF・速度変更
- 04M3U8ストリーム処理
- 05QSV・NVENCアクセラレーション
- 06非同期の並列処理
活用シーン
- 01動画から音声やクリップを抽出
- 02メディアファイルの一括変換と圧縮
- 03動画への透かし追加やサイズ変更
- 04M3U8ストリームをMP4に結合
MCP 対応
FFmpegによる音声・動画処理ツールをMCPクライアントに公開します。stdio接続に対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトの README よりFFmpeg Python MCP 服务器
📋 项目简介
这是一个基于 Model Context Protocol (MCP) 的 FFmpeg 视频音频处理服务器。该项目为 AI 助手提供了强大的视频和音频处理能力,包括格式转换、切割合并、特效添加等功能,支持硬件加速处理。
🌟 主要特性
- 🎬 完整的视频音频处理功能 - 转换、切割、合并、压缩等
- ⚡ 硬件加速支持 - Intel QSV、NVIDIA NVENC 等
- 🔄 异步并发处理 - 支持多任务并行执行
- 🌐 流媒体支持 - M3U8 合并、直播流处理
- 🎨 视频特效 - 水印、GIF转换、变速等
- 🤖 AI友好接口 - 标准 MCP 协议,易于集成
🚀 快速开始
前置要求
- Python 3.12+
- FFmpeg - 请先安装 FFmpeg:
# macOS brew install ffmpeg # Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # Windows # 从 https://ffmpeg.org/download.html 下载 - uv 包管理器:
curl -LsSf https://astral.sh/uv/install.sh | sh
安装和运行
-
克隆项目
git clone https://github.com/mabh111111/ffmpeg_python_mcp.git cd ffmpeg_python_mcp -
安装依赖
uv sync -
运行 MCP 服务器
# 开发模式(推荐用于测试) uv run mcp dev main.py # 或直接运行 uv run python main.py
🔧 MCP 配置和使用
什么是 MCP?
Model Context Protocol (MCP) 是一个标准化协议,允许 AI 助手(如 Claude、ChatGPT 等)安全地访问外部工具和资源。
在 AI 客户端中配置
配置 Claude Desktop
-
打开 Claude Desktop 配置文件:
# macOS ~/Library/Application Support/Claude/claude_desktop_config.json # Windows %APPDATA%\Claude\claude_desktop_config.json -
添加 MCP 服务器配置:
{ "mcpServers": { "ffmpeg-processor": { "command": "uv", "args": ["run", "python", "/path/to/ffmpeg_python_mcp/main.py"], "cwd": "/path/to/ffmpeg_python_mcp" } } } -
重启 Claude Desktop
配置其他 MCP 客户端
对于支持 MCP 的其他客户端,使用以下连接信息:
- 命令:
uv run python main.py - 工作目录: 项目根目录
- 协议: stdio
验证连接
运行服务器后,你应该能在 AI 助手中看到以下可用工具:
- 视频音频提取和转换工具
- 切割和合并功能
- 硬件加速处理
- 视频特效和压缩
🛠️ 主要功能
📤 音频提取
# 从视频提取音频
extract_audio_from_video(video_path, output_path?, audio_format?, audio_quality?)
# 提取音频片段
extract_audio_segment(video_path, start_time, duration, output_path?, audio_format?)
🔄 格式转换
# 视频格式转换
convert_video_format(input_path, output_path?, output_format?, video_codec?, audio_codec?, quality?)
# 音频格式转换
convert_audio_format(input_path, output_path?, output_format?, audio_codec?, bitrate?)
✂️ 切割合并
# 视频切割
cut_video_segment(input_path, start_time, end_time?|duration?, output_path?)
# 视频合并
merge_videos(video_paths, output_path?, merge_method?)
🎨 视频特效
# 转换为GIF
video_to_gif(input_path, output_path?, start_time?, duration?, width?, fps?, quality?)
# 添加水印
add_watermark(input_path, watermark_path, output_path?, position?, opacity?, margin?)
# 调整分辨率
resize_video(input_path, width, height, output_path?, keep_aspect_ratio?)
🚀 硬件加速
# 检查硬件加速支持
check_hardware_acceleration()
# QSV硬件加速转换
convert_video_with_qsv(input_path, output_path?, output_format?, qsv_encoder?, quality?)
🌐 流媒体处理
# M3U8合并
merge_m3u8_to_mp4(m3u8_url, output_path, headers?)
⚡ 性能特性
异步并发处理
- 所有处理函数支持异步执行
- AI 可同时调用多个工具进行并行处理
- 批量处理性能提升 3-5 倍
硬件加速
- Intel QSV: 处理速度提升 3-10 倍
- NVIDIA NVENC: GPU 硬件编码
- 自动检测: 智能选择最佳加速方案
📁 项目结构
ffmpeg_python_mcp/
├── main.py # MCP 服务器入口
├── src/ # 源代码模块
│ ├── tools/
│ │ └── math_tools.py # 数学工具(示例)
│ ├── resources/
│ │ └── greeting.py # 问候资源(示例)
│ └── config/
│ └── server_config.py # 配置管理
├── pyproject.toml # 项目配置
├── uv.lock # 依赖锁定
└── README.md # 项目文档
🔧 开发指南
添加新工具
- 在相应模块中定义工具函数
- 使用
@server.tool装饰器注册 - 添加完整的参数类型和文档字符串
@server.tool()
async def my_new_tool(input_path: str, option: str = "default") -> str:
"""
工具描述
Args:
input_path: 输入文件路径
option: 可选参数
Returns:
处理结果
"""
# 实现逻辑
return result
运行测试
# 检查代码格式
uv run ruff check
# 运行开发模式
uv run mcp dev main.py
🤝 贡献
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
🆘 支持
- GitHub Issues: 提交问题
- 讨论: GitHub Discussions
🔗 相关链接
⭐ 如果这个项目对你有帮助,请给个 Star!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。