mcpField
F
FFmpeg MCP Server

FFmpeg MCP Server

本地服务
github.com/Ashutos1997媒体与设计26 天前更新

关于 FFmpeg MCP Server

FFmpeg MCP Server 让 AI 工具通过 FFmpeg 和 FFprobe 在本地处理视频与音频。其类型化工具涵盖常见编辑和转换任务,还可将缩略图与波形以图像形式返回给视觉模型。

主要功能

  1. 01使用 FFprobe 检查媒体元数据
  2. 02转换、剪辑、压缩和合并媒体
  3. 03提取音频并生成缩略图
  4. 04调整视频比例以适配社交平台
  5. 05移除静音并调整播放速度
  6. 06制作分屏并添加字幕

适用场景

  1. 01将横屏片段处理为竖屏社交视频
  2. 02移除语音录音中的停顿
  3. 03让视觉模型检查缩略图或波形

MCP 相关

MCP 服务提供 13 个类型化工具,为 AI 客户端调用本地 FFmpeg 和 FFprobe 操作,并返回供检查缩略图和波形的图像数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ashutos1997-ffmpeg": {
"command": "npx",
"args": [
"-y",
"@ash_j1997/ffmpeg-mcp-server"
]
}
}
}
启动命令npx -y @ash_j1997/ffmpeg-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@ash_j1997/ffmpeg-mcp-server0.5.0

工具

17

收录的工具列表 · 更新于 6 天前

参数类型必填说明
inputPathstring是要检查的媒体文件路径(例如 './video.mp4')

详细介绍

ffmpeg-mcp-server

CI Release License: MIT npm version Glama

一个模型上下文协议(MCP)服务,可让 AI 工具在本地使用 FFmpeg 和 FFprobe 处理视频和音频。

支持 Apple Silicon 硬件编码,并可将图像预览直接返回给具备视觉能力的模型。


为什么要开发此项目

AI Agent 处理媒体时,经常会虚构无效标志、语法错误或不兼容的像素格式。

此服务提供 13 个基于 Zod 架构的类型化工具。AI 传入参数(例如 { inputPath: "video.mov", preset: "web_mp4" }),服务便会在本地运行有效的 FFmpeg 命令。


主要功能

  • 硬件编码: 在 macOS 上使用 VideoToolbox 加速导出,同时降低 CPU 使用率。
  • 图像响应: 返回 Base64 图像,让视觉模型检查缩略图和波形。
  • 社交媒体格式: 将横屏视频转换为 9:16 竖屏视频,并以模糊背景补齐画面。
  • 分屏: 将两段视频上下堆叠,用于 Reels 和 TikTok,并可选择添加字幕和混合音频。
  • 静音移除: 检测并剪除语音录音中的停顿。

内置工具(共 13 个)

工具描述主要参数
media_probe使用 ffprobe 检查媒体文件。以 JSON 格式返回元数据、流、编解码器、分辨率和时长。inputPath
media_convert转换视频和音频格式。包含适用于 Web MP4、WebM 和动态 GIF 的预设。inputPath、outputPath、preset、crf、resolution、fps、hardwareAcceleration
trim_media使用流复制或重新编码,从视频或音频文件中截取片段。inputPath、outputPath、startTime、endTime、duration、accurateReencode
extract_audio从视频中提取音轨。包含用于 Whisper 语音识别的 16kHz 单声道 WAV 预设。inputPath、outputPath、format、bitrate
extract_thumbnail在指定时间戳或视频中点截取静态图像。返回供视觉模型使用的 base64 图像数据。inputPath、outputPath、timestamp、resolution、includeBase64
compress_video压缩视频以满足目标大小(例如,将 GitHub PR 视频压至 10MB 以下,或将 Discord 视频压至 25MB 以下)。inputPath、outputPath、targetSizeMB、preset、crf、maxWidth、hardwareAcceleration
reformat_aspect_ratio将视频比例调整为 9:16 竖屏、1:1 正方形或 4:5 竖版,并添加模糊边框或进行中心裁剪。inputPath、outputPath、targetRatio、mode、blurAmount、padColor
create_split_screen将两个视频上下堆叠(9:16 Reels/TikTok)或并排排列,并混合音频和添加字幕。firstVideoPath、secondVideoPath、outputPath、layout、audioSource、subtitlesPath
trim_silence检测并移除录音中的静音间隔。报告时长以及节省的秒数。inputPath、outputPath、mode、thresholdDb、minDurationSeconds
concat_media使用流复制或重新编码,按顺序合并多个视频或音频文件。inputPaths、outputPath、mode
generate_waveform生成 PNG 波形图像。返回供视觉模型使用的 base64 图像数据。inputPath、outputPath、width、height、color、scale、includeBase64
add_subtitles将 SRT 或 VTT 字幕轨道嵌入视频文件,而无需重新编码视频。videoPath、subtitlesPath、outputPath、language、title
change_speed调整播放速度(例如,2 倍快进或 0.5 倍慢动作),并校正音调。inputPath、outputPath、speed、muteAudio

要求

  • Node.js >= 18.0.0
  • 本地已安装 FFmpeg 和 FFprobe:
    • macOS: brew install ffmpeg
    • Linux(Ubuntu/Debian): sudo apt update && sudo apt install ffmpeg
    • Windows: winget install Gyan.FFmpeg 或 choco install ffmpeg

安装

快速开始(Claude Desktop、Cursor、Antigravity)

使用 npx 直接运行(无需手动克隆或构建):

{
  "mcpServers": {
    "ffmpeg": {
      "command": "npx",
      "args": ["-y", "@ash_j1997/ffmpeg-mcp-server"]
    }
  }
}
配置文件位置:
  • Claude Desktop(macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop(Windows): %APPDATA%\Claude\claude_desktop_config.json
  • Antigravity IDE: ~/.gemini/config/mcp_config.json
  • Cursor / Windsurf: 将其添加为 stdio 服务,命令设为 npx,参数设为 `["-y", "@ash_j1997/ffmpeg-mcp-server"]

本地开发

  1. 安装依赖:

    npm install
    
  2. 构建 TypeScript:

    npm run build
    
  3. 运行测试:

    node test-tools.js
    

许可证

MIT © Ashutos1997

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。