FFmpeg Python MCP Server

FFmpeg Python MCP Server

Enables AI assistants to perform video and audio processing tasks such as format conversion, cutting, merging, and adding effects via FFmpeg, with hardware acceleration support.

Category
访问服务器

README

FFmpeg Python MCP 服务器

Python MCP FFmpeg License

📋 项目简介

这是一个基于 Model Context Protocol (MCP) 的 FFmpeg 视频音频处理服务器。该项目为 AI 助手提供了强大的视频和音频处理能力,包括格式转换、切割合并、特效添加等功能,支持硬件加速处理。

🌟 主要特性

  • 🎬 完整的视频音频处理功能 - 转换、切割、合并、压缩等
  • 硬件加速支持 - Intel QSV、NVIDIA NVENC 等
  • 🔄 异步并发处理 - 支持多任务并行执行
  • 🌐 流媒体支持 - M3U8 合并、直播流处理
  • 🎨 视频特效 - 水印、GIF转换、变速等
  • 🤖 AI友好接口 - 标准 MCP 协议,易于集成

🚀 快速开始

前置要求

  1. Python 3.12+
  2. FFmpeg - 请先安装 FFmpeg:
    # macOS
    brew install ffmpeg
    
    # Ubuntu/Debian
    sudo apt update && sudo apt install ffmpeg
    
    # Windows
    # 从 https://ffmpeg.org/download.html 下载
    
  3. uv 包管理器:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    

安装和运行

  1. 克隆项目

    git clone https://github.com/mabh111111/ffmpeg_python_mcp.git
    cd ffmpeg_python_mcp
    
  2. 安装依赖

    uv sync
    
  3. 运行 MCP 服务器

    # 开发模式(推荐用于测试)
    uv run mcp dev main.py
    
    # 或直接运行
    uv run python main.py
    

🔧 MCP 配置和使用

什么是 MCP?

Model Context Protocol (MCP) 是一个标准化协议,允许 AI 助手(如 Claude、ChatGPT 等)安全地访问外部工具和资源。

在 AI 客户端中配置

配置 Claude Desktop

  1. 打开 Claude Desktop 配置文件:

    # macOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
    
    # Windows
    %APPDATA%\Claude\claude_desktop_config.json
    
  2. 添加 MCP 服务器配置:

    {
      "mcpServers": {
        "ffmpeg-processor": {
          "command": "uv",
          "args": ["run", "python", "/path/to/ffmpeg_python_mcp/main.py"],
          "cwd": "/path/to/ffmpeg_python_mcp"
        }
      }
    }
    
  3. 重启 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                   # 项目文档

🔧 开发指南

添加新工具

  1. 在相应模块中定义工具函数
  2. 使用 @server.tool 装饰器注册
  3. 添加完整的参数类型和文档字符串
@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!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🆘 支持

🔗 相关链接


⭐ 如果这个项目对你有帮助,请给个 Star!

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选