MCP FFmpeg Helper
一个基于 Model Context Protocol (MCP) 的 FFmpeg 辅助工具,提供视频处理功能。
功能概述
MCP FFmpeg Helper 是一个轻量级服务器,它通过 MCP 协议将 FFmpeg 的强大功能暴露给 AI 助手。它支持以下视频处理操作:
- 获取视频文件详细信息
- 转换视频格式
- 从视频中提取音频
- 从图像序列创建视频
- 裁剪视频
- 为视频添加水印
- 裁剪音频文件
- 从视频中提取帧为图像序列
安装与配置
前提条件
- Node.js (v14+)
- FFmpeg (需要安装在系统中并可通过命令行访问)
FFmpeg 官方下载页面 获取
可以使用检查是否安装成功Copy
安装步骤
- 克隆或下载此仓库
- 安装依赖:Copy
- 构建项目:Copy
配置 MCP
要在 Windsurf 或其他支持 MCP 的应用程序中使用此工具,请将以下配置添加到 MCP 配置文件中:
1.本地配置node服务器
windows:
对于 Windows 用户,配置文件通常位于:%APPDATA%/.codeium/windsurf/mcp_config.json
macos:
2.使用npm包的方式配置mcp服务器(推荐使用,不需要手动构建node服务器,不用克隆仓库到本地)
windows:
macos:
使用示例
获取视频信息
直接在windsurf控制台输入: 请帮我查看"path/to/video.mp4"视频信息
转换视频
直接在windsurf控制台输入: 请帮我将"path/to/input.avi"转换为"path/to/output.mp4"
提取音频
直接在windsurf控制台输入: 请帮我从"path/to/video.mp4"提取音频到"path/to/audio.mp3"
从图像创建视频
直接在windsurf控制台输入: 请帮我从"path/to/images/d.jpg"创建视频到"path/to/output.mp4"
裁剪视频
直接在windsurf控制台输入: 请帮我裁剪"path/to/input.mp4"到"path/to/output.mp4",从00:00:00开始,到00:01:00结束
添加水印
直接在windsurf控制台输入: 请帮我为"path/to/input.mp4"添加水印到"path/to/output.mp4",使用"path/to/watermark.png"作为水印,位置在[右下角/左上角/中心等],透明度[0-1之间的值]
裁剪音频
直接在windsurf控制台输入: 请帮我裁剪"path/to/input.mp3"到"path/to/output.mp3",从00:00:10开始,持续30秒
提取视频帧
直接在windsurf控制台输入: 请帮我从"path/to/video.mp4"提取帧到"path/to/frames"文件夹,使用PNG格式以保持最高质量
可用工具
1. 获取视频信息 (get_video_info)
获取视频文件的详细信息,包括格式、编解码器、分辨率、帧率等。
参数:
filePath
: 视频文件路径
示例:
2. 转换视频 (convert_video)
将视频转换为不同格式或应用特定编码选项。
参数:
inputPath
: 输入视频文件路径outputPath
: 输出视频文件路径options
: 附加的 FFmpeg 选项(可选)
示例:
3. 提取音频 (extract_audio)
从视频文件中提取音频轨道。
参数:
inputPath
: 输入视频文件路径outputPath
: 输出音频文件路径format
: 音频格式(如 mp3, aac 等)
示例:
4. 从图像创建视频 (create_video_from_images)
从图像序列创建视频文件。
参数:
inputPattern
: 输入图像模式(如 'imgd.jpg' 或 'folder/*.png')outputPath
: 输出视频文件路径framerate
: 帧率(默认:25)codec
: 视频编解码器(默认:libx264)pixelFormat
: 像素格式(默认:yuv420p)extraOptions
: 附加的 FFmpeg 选项(可选)
示例:
5. 裁剪视频 (trim_video)
将视频裁剪到指定的时间段。
参数:
inputPath
: 输入视频文件路径outputPath
: 输出视频文件路径startTime
: 开始时间(格式:HH:MM:SS.mmm 或秒数)duration
: 持续时间(可选,格式同上)endTime
: 结束时间(可选,格式同上)
示例:
6. 添加水印 (add_watermark)
为视频添加图像水印。
参数:
inputPath
: 输入视频文件路径watermarkPath
: 水印图像路径outputPath
: 输出视频文件路径position
: 水印位置(topleft, topright, bottomleft, bottomright, center)opacity
: 水印不透明度(0.0-1.0)
示例:
7. 裁剪音频 (trim_audio)
将音频文件裁剪到指定的时间段。
参数:
inputPath
: 输入音频文件路径outputPath
: 输出音频文件路径startTime
: 开始时间(格式:HH:MM:SS.mmm 或秒数)duration
: 持续时间(可选,格式同上)endTime
: 结束时间(可选,格式同上)format
: 音频格式(如 mp3, aac 等,可选)
示例:
8. 提取视频帧 (extract_frames)
从视频中提取帧并保存为图像序列。
参数:
inputPath
: 输入视频文件路径outputDir
: 输出图像目录(默认:'output')frameRate
: 帧提取率(如 '1' 提取每一帧,'0.5' 提取每两帧,'1/30' 每30秒提取一帧)format
: 输出图像格式(jpg, png 等,默认:jpg)quality
: 图像质量(1-100,默认:95)startTime
: 开始提取的时间点(可选)duration
: 提取的持续时间(可选)
示例:
实际使用案例
从图像序列创建 30fps 的 H.264 视频
将视频的前 10 秒裁剪出来
提取高质量视频帧
裁剪音频文件的特定片段
故障排除
- 确保 FFmpeg 已正确安装并添加到系统 PATH 中
- 检查文件路径是否正确,特别是在 Windows 系统中使用反斜杠(\)时
- 如果遇到权限问题,请确保应用程序有权访问指定的文件和目录
- 对于复杂的 FFmpeg 命令,可以使用
options
或extraOptions
参数传递额外的命令行选项 - 如果提取的图像质量不佳,尝试使用 PNG 格式并设置较高的质量值(95-99)
开发
项目结构
项目采用模块化结构,便于维护和扩展:
src/index.ts
- 主入口文件,设置 MCP 服务器src/utils/file.ts
- 文件操作相关的工具函数src/utils/ffmpeg.ts
- FFmpeg 相关的工具函数src/tools/definitions.ts
- 工具定义src/tools/handlers.ts
- 工具处理函数实现
调试
由于 MCP 服务器通过标准输入/输出进行通信,调试可能比较困难。建议使用控制台日志进行调试:
扩展功能
要添加新的 FFmpeg 功能,请修改以下文件:
- 在
src/tools/definitions.ts
中添加新工具的定义 - 在
src/tools/handlers.ts
中添加相应的实现 - 重新构建项目:
npm run build
许可证
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
A lightweight server that exposes FFmpeg's video processing capabilities to AI assistants through the Model Context Protocol (MCP), supporting operations like video format conversion, audio extraction, and adding watermarks.
Related MCP Servers
- -securityFlicense-qualityA server that provides Luma AI's video generation API as the Model Context Protocol (MCP)Last updated -2TypeScript
- -securityAlicense-qualityAn MCP server that allows Claude and other AI assistants to interact with the YouTube API, providing tools to search videos/channels and retrieve detailed information about them.Last updated -1JavaScriptMIT License
- AsecurityFlicenseAqualityAn MCP server designed to work with FFmpeg for media processing tasks, offering enhanced performance and secure communication for handling media processing requests.Last updated -24TypeScript
- -security-license-qualityModel Context Protocol server that enables generating videos from text prompts and/or images using AI models (Luma Ray2 Flash and Kling v1.6 Pro) with configurable parameters like aspect ratio, resolution, and duration.Last updated -1JavaScriptMIT License