Video Perception

Driver en ffmpeg MCP-server, så Claude læser videobilleder og tidsstemplede transskriptioner

Af jordanrendric · jordanrendric/claude-video-vision

Virker med opsætning ★ 6.8/10

Video Perception — Driver en ffmpeg MCP-server, så Claude læser videobilleder og tidsstemplede transskriptioner

Hvad det gør

Forbinder Claude Code til claude-video-vision MCP-serveren, så den kan læse lokale videofiler (.mp4, .mov, .mkv, .webm) og YouTube-URL'er som billedrammer plus tidsstemplet lydtransskription. Skillen foreskriver et workflow: hent metadata, kør ffmpeg strukturel analyse (sceneændringer, stilhedsintervaller, bevægelse), før der udtrækkes billeder, og træk derefter billeder med adaptiv FPS omkring de øjeblikke, der betyder noget. Udløses, når en videofilsti, et YouTube-link eller en anmodning om at se, gennemgå eller opsummere en video vises i samtalen.

Testrapport

Jeg installerede claude-video-vision@1.3.2 fra npm i en sandboxed HOME, drev MCP-serveren over stdio JSON-RPC og bekræftede, at alle seks værktøjer reagerede, derefter genererede jeg en 3-minutters testvideo med fire mærkede kapitler og en 1-sekunds "ERROR CODE 7742" flash ved 01:37. BASELINE (naiv video_watch, fps auto): 100 billeder / 487KB billeder; den fangede flashen ved 01:37, men ramte lydløst max_frames=100 og udtrækkede aldrig de sidste 41 sekunder af videoen. SKILL-kørsel (video_info derefter video_analyze derefter en planlagt segmentudtrækning): video_analyze returnerede den nøjagtige klippeliste 00:00:45, 00:01:30, 00:01:37, 00:01:38, 02:15 plus 00:00:45-01:30 stilhedsintervallet for nul billed-tokens — inklusive 02:15-klippet, baseline aldrig så — men den foreskrevne segmentudtrækning returnerede kun 34KB billeder mærket 00:00:10, 01:48, 01:41, 02:21, 02:34 og 03:54 (forbi 03:00 varigheden) og missede fejlflashen fuldstændigt. Grundårsagen læste jeg i dist/extractors/frames.js: -ss sendes før -i, mens -to sendes efter, så hver vinduesanmodning kører til EOF; jeg reproducerede det på video_watch-segmenter, video_watch start_time/end_time og video_detail i en ren HOME. Transskription returnerer også et tomt array uden advarsel, når ingen whisper/API-backend er konfigureret.

Testet: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/jordanrendric/claude-video-vision.git /tmp/video-perception-src
mkdir -p ~/.claude/skills
cp -R /tmp/video-perception-src/skills/video-perception ~/.claude/skills/video-perception
# The skill is only guidance — it is USELESS without the MCP server that provides
# video_info / video_analyze / video_watch / video_detail / video_configure / video_setup.
#
# Register the MCP server (needs Node 20+ and ffmpeg on PATH):
#   claude mcp add claude-video-vision -- npx -y claude-video-vision@latest
#
# Or install the whole plugin instead of this skill, inside Claude Code, one at a time:
#   /plugin marketplace add https://github.com/jordanrendric/claude-video-vision
#   /plugin install claude-video-vision
#   /setup-video-vision
#
# Required deps:
#   brew install ffmpeg            # frame extraction (mandatory)
#   brew install yt-dlp            # only for YouTube URLs
# Audio transcription needs a backend, otherwise transcription silently returns []:
#   export GEMINI_API_KEY=...      # free tier, backend "gemini-api"
#   brew install whisper-cpp       # fully local, backend "local"
#   export OPENAI_API_KEY=...      # paid, backend "openai"
# Config lives at ~/.claude-video-vision/config.json (set via the video_configure tool).
#
# Known defect in the published v1.3.2 server: any time-bounded request over-extracts.
# ffmpeg is called with -ss before -i but -to after -i, so asking for 01:36-01:39
# returns ~100 frames spanning 01:36-02:25. Prefer whole-video video_watch and lean on
# video_analyze for timestamps until this is fixed.

Kommandoer og eksempelprompter

  • /video-perceptionDriver en ffmpeg MCP-server, så Claude læser videobilleder og tidsstemplede transskriptioner

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

  • Watch this video and summarize what happens
  • Analyze this YouTube link for key moments
  • Review this MP4 and describe the scenes