视频摘要服务

一个基于MCP协议的视频摘要服务,通过提取视频关键帧并使用GPT-4.1 Vision生成自然语言摘要,支持本地视频文件和RTSP实时流。

  • by stex2005
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 stex2005/video-summary-mcp-server

使用说明

视频摘要mcp服务器

🚀 fastMCP示例:视觉工具

此服务器公开了几个MCP工具,包括:

summarize_video(video_path: string) → summary: string
summarize_rtsp_stream(rtsp_url: string) → summary: string

您可以将此文件放到任何位置并运行:

python server.py

与模型上下文协议兼容的客户端(ROS-MCP客户端、Claude Desktop、ChatGPT MCP)可以立即使用它。


📌 安装

pip install -e .

或者直接安装依赖项:

pip install fastmcp openai pillow opencv-python

🧠 此服务器的功能

当客户来电时:

{
  "tool": "summarize_video",
  "arguments": { "video_path": "demo.mp4" }
}

fastMCP:

  1. 加载视频
  2. 每2秒提取一帧
  3. 将帧编码为JPEG
  4. 将它们发送到GPT-4.1 Vision
  5. 返回自然语言 视频摘要

需要总结一个实时摄像头或无人机馈送吗?使用 summarize_rtsp_stream:

{
  "tool": "summarize_rtsp_stream",
  "arguments": {
    "rtsp_url": "rtsp://user:pass@camera-ip:554/stream",
    "duration_sec": 20,
    "interval_sec": 4
  }
}

该工具使用OpenCV打开RTSP流,在请求的持续时间内对帧进行采样,并将其发送到GPT-4.1 Vision进行摘要。

这适用于 任何使用Python的计算机,不需要GPU。


🧪 如何跑步

作为MCP服务器

启动MCP服务器:

python server.py

作为独立CLI

直接从命令行运行:

python main.py videos/demo.mp4 [style]

可用样式:

  • short -简明摘要(默认)
  • timeline -带时间戳的摘要
  • detailed -综合总结
  • technical -技术要点摘要

例子:

python main.py videos/demo.mp4 timeline

然后使用 任何MCP客户端例如:

✔ ChatGPT MCP(自定义工具)

添加新连接:

command: python /path/to/server.py

✔ ROS-MCP客户端

ros_mcp connect video-summarizer python server.py

✔ 克劳德桌面(工具→ 添加工具)

将可执行文件设置为:

python3 server.py

📁 项目结构

video-summary-mcp-server/
│
├── server.py              # MCP server (fastMCP wrapper)
├── main.py                # CLI runner for standalone use
├── summarizer.py          # Core summarization logic
├── frame_extractor.py     # Video frame extraction
├── encoder.py             # JPEG encoding
├── prompt.py              # Prompt building for different styles
├── pyproject.toml         # Project configuration
└── videos/                # Directory for video files

模块概述

  • server.py -MCP服务器暴露 summarize_video 工具
  • main.py -用于直接视频摘要的独立CLI
  • summarizer.py -编排摘要管道的核心模块
  • frame_extractor.py -定期从视频中提取关键帧
  • encoder.py -将帧压缩为JPEG以实现高效的API调用
  • prompt.py -为不同的摘要样式(简短、时间线、详细、技术)构建提示

🔑 环境设置

选项1:使用.env文件(推荐)

  1. 创建一个 .env 项目根目录中的文件(任何文本编辑器都可以)。

  2. 添加您的OpenAI API密钥:

OPENAI_API_KEY=your-actual-api-key-here

这 .env 当您运行服务器时,文件会自动加载。

选项2:环境变量

将其设置为环境变量:

export OPENAI_API_KEY='your-api-key-here'

从以下位置获取API密钥: https://platform.openai.com/api-keys