Video Perception

Controla un servidor MCP de ffmpeg para que Claude lea fotogramas de video y transcripciones con marca de tiempo

Por jordanrendric · jordanrendric/claude-video-vision

Funciona con configuración ★ 6.8/10

Video Perception — Controla un servidor MCP de ffmpeg para que Claude lea fotogramas de video y transcripciones con marca de tiempo

Qué hace

Conecta Claude Code al servidor MCP claude-video-vision para que pueda leer archivos de video locales (.mp4, .mov, .mkv, .webm) y URLs de YouTube como fotogramas de imagen más transcripción de audio con marca de tiempo. La habilidad prescribe un flujo de trabajo: obtener metadatos, ejecutar análisis estructural de ffmpeg (cambios de escena, intervalos de silencio, movimiento) antes de extraer cualquier fotograma, luego extraer fotogramas a FPS adaptativos alrededor de los momentos importantes. Se activa cuando aparece en la conversación una ruta de archivo de video, un enlace de YouTube o una solicitud para ver, revisar o resumir un video.

Informe de la prueba

Instalé claude-video-vision@1.3.2 desde npm en un HOME aislado, controlé el servidor MCP a través de JSON-RPC de stdio, y confirmé que las seis herramientas respondían, luego generé un video de prueba de 3 minutos con cuatro capítulos etiquetados y un flash de 1 segundo "ERROR CODE 7742" en 01:37. LÍNEA BASE (video_watch ingenuo, fps automático): 100 fotogramas / 487KB de imágenes; detectó el flash en 01:37 pero silenciosamente alcanzó max_frames=100 y nunca extrajo los últimos 41 segundos del video. Ejecución de HABILIDAD (video_info luego video_analyze luego una extracción de segmento planificada): video_analyze devolvió la lista de cortes exacta 00:00:45, 00:01:30, 00:01:37, 00:01:38, 00:02:15 más el intervalo de silencio 00:00:45-00:01:30 para cero tokens de imagen — incluyendo el corte 02:15 que la línea base nunca vio — pero la extracción de segmento prescrita devolvió solo 34KB de fotogramas etiquetados 00:00:10, 00:01:48, 00:01:41, 00:02:21, 00:02:34 y 00:03:54 (pasada la duración de 3:00) y omitió el flash de error por completo. Causa raíz que leí en dist/extractors/frames.js: -ss se pasa antes de -i mientras que -to se pasa después, por lo que cada solicitud de ventana se ejecuta hasta EOF; lo reproduje en segmentos de video_watch, video_watch start_time/end_time, y video_detail en un HOME limpio. La transcripción también devuelve un array vacío sin advertencia cuando no hay un backend whisper/API configurado.

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

Instalación

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.

Comandos y prompts de ejemplo

  • /video-perceptionControla un servidor MCP de ffmpeg para que Claude lea fotogramas de video y transcripciones con marca de tiempo

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

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