使用说明

项目简介

本项目是一个基于Model Context Protocol (MCP) 的服务器实现,它利用强大的FFmpeg工具,为LLM客户端提供视频和音频处理能力。通过此服务器,LLM可以调用FFmpeg的各种功能,实现多媒体内容的编辑和分析。

主要功能点

  • 视频剪辑 (Video Trimming):根据指定的时间段剪切视频文件,提取视频片段。
  • 视频帧提取 (Frame Extraction):从视频文件的特定时间点提取静态图像帧。
  • 音频分割 (Audio Segmentation):将音频文件分割成多个片段,并支持配置片段间的重叠部分,适用于处理大型音频文件。

安装步骤

  1. 克隆仓库
    git clone https://github.com/mfleurival/FFmpeg.git
    cd FFmpeg
  2. 安装依赖 确保您的系统已安装 Node.js (版本 18 或更高) 和 FFmpeg,并且 FFmpeg 已添加到系统环境变量 PATH 中。然后运行:
    npm install
  3. 构建项目
    npm run build

服务器配置

要将此MCP服务器与MCP客户端(例如 Claude/Cline)集成,您需要在客户端的MCP服务器配置文件中添加以下配置信息。这告诉客户端如何启动和连接到 FFmpeg MCP 服务器。

{
  "mcpServers": {
    "ffmpeg": {
      "command": "node",
      "args": ["/path/to/FFmpeg/build/index.js"],
      "disabled": false,
      "autoApprove": []
    }
  }
}

配置参数说明:

  • 'server name': 'ffmpeg' (服务器名称,客户端用此名称引用)
  • 'command': 'node' (启动服务器的命令,这里使用 Node.js 运行)
  • 'args': '["/path/to/FFmpeg/build/index.js"]' (命令参数,指向编译后的服务器入口文件 'index.js' 的路径。请将 '/path/to/FFmpeg' 替换为您的 FFmpeg 仓库的实际路径)
  • 'disabled': 'false' (设置为 'false' 表示启用此服务器)
  • 'autoApprove': '[]' (自动批准的工具列表,默认为空,表示所有工具调用都需要客户端手动批准)

基本使用方法

  1. 启动服务器 在克隆的仓库目录下,运行以下命令启动 FFmpeg MCP 服务器:

    npm start

    服务器将在标准输入/输出 (stdio) 上运行,并等待 MCP 客户端的请求。

  2. 客户端调用工具 在您的 MCP 客户端中,配置好 FFmpeg MCP 服务器后,您可以通过客户端提供的界面或API调用以下工具,实现视频和音频处理功能。

    可用工具列表:

    • trim_video (视频剪辑)

      • 描述: 剪切视频到指定的时间段。
      • 参数:
        • 'video_path': 视频文件路径 (字符串)
        • 'start_time': 开始时间 (HH:MM:SS 格式字符串)
        • 'end_time': 结束时间 (HH:MM:SS 格式字符串)
        • 'output_format' (可选): 输出格式,例如 "mp4", "mkv" (字符串,默认为 "mp4")
    • extract_frame (视频帧提取)

      • 描述: 从视频指定时间戳提取帧。
      • 参数:
        • 'video_path': 视频文件路径 (字符串)
        • 'timestamp': 时间戳 (HH:MM:SS 格式字符串)
        • 'output_format' (可选): 输出图像格式,例如 "png", "jpg" (字符串,默认为 "png")
    • segment_audio (音频分割)

      • 描述: 将音频分割成多个片段,可配置重叠时长。
      • 参数:
        • 'audio_path': 音频文件路径 (字符串)
        • 'segment_duration': 每个片段的时长 (秒,数字)
        • 'overlap_duration' (可选): 片段重叠时长 (秒,数字,默认为 2)
        • 'output_format' (可选): 输出格式,例如 "wav", "mp3" (字符串,默认为 "wav")
        • 'output_directory': 输出目录路径 (字符串)
        • 'naming_pattern' (可选): 片段文件名命名模式,"{number}" 会被替换为片段序号 (字符串,默认为 "segment_{number}")

    示例: 客户端可以通过发送 'CallToolRequest' 请求来调用这些工具,并传递相应的参数。服务器执行工具后,会将结果以 MCP 响应的形式返回给客户端。

信息

分类

AI与计算