Video Perception

Pilote un serveur MCP ffmpeg pour que Claude lise les images vidéo et les transcriptions horodatées.

par jordanrendric · jordanrendric/claude-video-vision

Fonctionne avec configuration ★ 6.8/10

Video Perception — Pilote un serveur MCP ffmpeg pour que Claude lise les images vidéo et les transcriptions horodatées.

Ce que fait

Connecte Claude Code au serveur MCP claude-video-vision afin qu'il puisse lire des fichiers vidéo locaux (.mp4, .mov, .mkv, .webm) et des URLs YouTube comme des images vidéo plus une transcription audio horodatée. La compétence prescrit un workflow : récupérer les métadonnées, exécuter une analyse structurelle ffmpeg (changements de scène, intervalles de silence, mouvement) avant d'extraire des images, puis extraire des images à un FPS adaptatif autour des moments importants. Se déclenche lorsqu'un chemin de fichier vidéo, un lien YouTube, ou une demande de visionner, réviser ou résumer une vidéo apparaît dans la conversation.

Rapport de test

J'ai installé claude-video-vision@1.3.2 depuis npm dans un HOME sandboxé, piloté le serveur MCP via JSON-RPC stdio, et confirmé que les six outils répondent, puis généré une vidéo de test de 3 minutes avec quatre chapitres étiquetés et un flash d'une seconde "ERROR CODE 7742" à 01:37. RÉFÉRENCE (video_watch naïf, fps auto) : 100 images / 487KB d'images ; il a capturé le flash à 00:01:37 mais a silencieusement atteint max_frames=100 et n'a jamais extrait les 41 dernières secondes de la vidéo. Exécution de la COMPÉTENCE (video_info puis video_analyze puis une extraction de segment planifiée) : video_analyze a retourné la liste de coupes exacte 00:00:45, 00:01:30, 00:01:37, 00:01:38, 00:02:15 plus l'intervalle de silence 00:00:45-00:01:30 pour zéro jetons d'image — y compris la coupe 02:15 que la référence n'a jamais vue — mais l'extraction de segment prescrite n'a retourné que 34KB d'images étiquetées 00:00:10, 00:01:48, 00:01:41, 00:02:21, 00:02:34 et 00:03:54 (dépassant la durée de 3:00) et a complètement manqué le flash d'erreur. Cause racine que j'ai lue dans dist/extractors/frames.js : -ss est passé avant -i tandis que -to est passé après, donc chaque requête de fenêtre s'exécute jusqu'à EOF ; je l'ai reproduit sur les segments video_watch, video_watch start_time/end_time, et video_detail dans un HOME propre. La transcription retourne également un tableau vide sans avertissement lorsqu'aucun backend whisper/API n'est configuré.

Testé le: 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.

Commandes et exemples de prompts

  • /video-perceptionPilote un serveur MCP ffmpeg pour que Claude lise les images vidéo et les transcriptions horodatées.

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

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