使用说明
项目简介
FFmpeg MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供便捷的音视频处理能力。它封装了强大的 FFmpeg 工具,使 LLM 能够通过标准化的 MCP 协议调用 FFmpeg 的各项功能,例如视频加速、音频提取等。
主要功能点
- 视频加速: 支持通过 'speed_up' 工具加速视频播放速度,可自定义加速倍速和最大帧率。
- 音频提取: 支持通过 'extract_audio' 工具从视频文件中提取音频并保存为 MP3 格式。
- 基于 MCP 协议: 遵循 MCP 协议标准,易于与各种 MCP 客户端集成,实现 LLM 对音视频处理功能的调用。
- 可扩展性: 基于简单的工具注册机制,未来可以轻松扩展更多 FFmpeg 的音视频处理功能。
- 标准化接口: 通过 JSON-RPC 协议进行通信,提供清晰、规范的 API 接口。
安装步骤
-
安装 Node.js 和 npm: 确保你的系统中已安装 Node.js 和 npm (Node 包管理器)。你可以从 https://nodejs.org/ 下载并安装。
-
下载仓库代码: 从 GitHub 仓库 https://github.com/ZizoTheDev/ffmpeg-mcp 下载代码,你可以使用 'git clone https://github.com/ZizoTheDev/ffmpeg-mcp' 命令克隆仓库到本地。
-
安装依赖: 进入仓库根目录,运行命令 'npm install' 安装项目所需的依赖包。
-
构建项目: 运行命令 'npm run build' 构建 TypeScript 代码到 JavaScript。
-
安装 FFmpeg: FFmpeg MCP Server 依赖 FFmpeg 工具,请确保你的系统中已安装 FFmpeg。你可以参考 FFmpeg 官网 https://ffmpeg.org/ 的指引进行安装。并确保 'ffmpeg' 命令在你的系统 PATH 环境变量中可用,或者通过设置环境变量 'FFMPEG_PATH' 指定 FFmpeg 可执行文件的路径。
服务器配置
对于 MCP 客户端,你需要配置连接 FFmpeg MCP Server 的信息。以下是一个 JSON 格式的配置示例,你需要将其配置到你的 MCP 客户端中:
{ "serverName": "ffmpeg-mcp", "command": "node", "args": [ "cli.js" ], "transport": "stdio" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "ffmpeg-mcp"。
- 'command': 启动服务器的命令,这里使用 'node' 命令来运行 'cli.js'。
- 'args': 传递给启动命令的参数,这里指定运行 'cli.js' 文件。
- 'transport': 传输协议,这里使用 'stdio' (标准输入输出) 协议。
请注意: 确保你的 MCP 客户端支持 'stdio' 传输协议,并按照客户端的指引配置上述 JSON 信息。
基本使用方法
-
启动服务器: 在仓库根目录下,运行命令 'npm start' 启动 FFmpeg MCP Server。服务器将通过 stdio 协议等待客户端连接和请求。
-
配置 MCP 客户端: 根据 "服务器配置" 章节的说明,配置你的 MCP 客户端连接到 FFmpeg MCP Server。
-
调用工具: 在你的 LLM 应用中,通过 MCP 客户端向 FFmpeg MCP Server 发送工具调用请求,例如:
- 加速视频: 调用 'speed_up' 工具,并提供 'input_file' (输入视频文件路径)、'speed_factor' (加速倍速) 等参数。
- 提取音频: 调用 'extract_audio' 工具,并提供 'input_file' (输入视频文件路径) 参数。
-
接收响应: MCP 客户端将接收来自 FFmpeg MCP Server 的 JSON-RPC 响应,其中包含工具执行的结果,例如成功或失败信息、输出文件路径等。
示例 (LLM 应用侧,伪代码):
// 假设 client 是一个 MCP 客户端实例 // 调用 speed_up 工具 const speedUpResult = await client.callTool("ffmpeg-mcp", "speed_up", { input_file: "/path/to/input.mp4", speed_factor: 2 }); if (speedUpResult.isError) { console.error("视频加速失败:", speedUpResult.content); } else { console.log("视频加速成功:", speedUpResult.content); } // 调用 extract_audio 工具 const extractAudioResult = await client.callTool("ffmpeg-mcp", "extract_audio", { input_file: "/path/to/input.mp4" }); if (extractAudioResult.isError) { console.error("音频提取失败:", extractAudioResult.content); } else { console.log("音频提取成功:", extractAudioResult.content); }
请根据你的 MCP 客户端的具体使用方法,参考以上示例进行工具调用。
信息
分类
开发者工具