Video Perception

Stuurt een ffmpeg MCP server aan zodat Claude video frames en getimede transcripten leest

Door jordanrendric · jordanrendric/claude-video-vision

Werkt met setup ★ 6.8/10

Video Perception — Stuurt een ffmpeg MCP server aan zodat Claude video frames en getimede transcripten leest

Wat het doet

Verbindt Claude Code met de claude-video-vision MCP server zodat het lokale videobestanden (.mp4, .mov, .mkv, .webm) en YouTube URLs kan lezen als afbeeldingsframes plus getimede audiotranscriptie. De skill schrijft een workflow voor: metadata ophalen, ffmpeg structurele analyse uitvoeren (scènewisselingen, stilte-intervallen, beweging) voordat frames worden geëxtraheerd, en vervolgens frames trekken met adaptieve FPS rond de belangrijke momenten. Activeert wanneer een videobestandspad, een YouTube link, of een verzoek om een video te bekijken, te beoordelen of samen te vatten verschijnt in het gesprek.

Testrapport

Ik installeerde claude-video-vision@1.3.2 van npm in een gesandboxte HOME, stuurde de MCP server aan via stdio JSON-RPC, en bevestigde dat alle zes tools reageerden, waarna ik een 3-minuten testvideo genereerde met vier gelabelde hoofdstukken en een 1-seconde "ERROR CODE 7742" flits op 01:37. BASELINE (naïeve video_watch, fps auto): 100 frames / 487KB aan afbeeldingen; het ving de flits op 00:01:37 op, maar bereikte stilzwijgend max_frames=100 en extraheerde nooit de laatste 41 seconden van de video. SKILL run (video_info dan video_analyze dan een geplande segmentextractie): video_analyze retourneerde de exacte cut list 00:00:45, 00:01:30, 00:01:37, 00:01:38, 00:02:15 plus het 00:00:45-00:01:30 stilte-interval voor nul afbeeldingstokens — inclusief de 02:15 cut die de baseline nooit zag — maar de voorgeschreven segmentextractie retourneerde slechts 34KB aan frames gelabeld 00:00:10, 00:01:48, 00:01:41, 00:02:21, 00:02:34 en 00:03:54 (voorbij de 3:00 duur) en miste de error flash volledig. De hoofdoorzaak die ik las in dist/extractors/frames.js: -ss wordt vóór -i doorgegeven terwijl -to erna wordt doorgegeven, dus elke vensterverzoek loopt tot EOF; ik reproduceerde het op video_watch segmenten, video_watch start_time/end_time, en video_detail in een schone HOME. Transcriptie retourneert ook een lege array zonder waarschuwing wanneer geen whisper/API backend is geconfigureerd.

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

Installatie

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.

Commando's en voorbeeldprompts

  • /video-perceptionStuurt een ffmpeg MCP server aan zodat Claude video frames en getimede transcripten leest

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

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