Noureddine RAMDI / Adaptive video perception for AI agents with claude-video-vision

Created Mon, 04 May 2026 10:23:01 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

jordanrendric/claude-video-vision

claude-video-vision tackles the challenge of bringing video perception capabilities to Claude Code agents by combining adaptive frame extraction with multi-backend audio transcription. It’s a plugin that acts as a perception layer, feeding Claude raw video frames and timestamped audio transcripts, then letting the language model perform its own interpretation. What sets it apart is how it parses natural language queries like “the first second” or “summarize this 1h lecture” to dynamically adjust ffmpeg parameters such as frame rate, time range, and resolution before extracting frames. This makes the plugin a neat bridge between natural language understanding and low-level video processing.

what claude-video-vision does and its architecture

At its core, claude-video-vision is a Node.js TypeScript plugin built for the Claude Code MCP (Model Context Protocol) infrastructure. It provides multimodal video perception by extracting image frames from videos using ffmpeg and transcribing audio using one of three backend options: the Gemini API, a local Whisper implementation via whisper.cpp, or the OpenAI API. This design offers flexibility depending on user preferences, costs, and deployment scenarios.

The architecture revolves around exposing four MCP tools:

  • Video analysis: extracting frames adaptively based on natural language cues
  • Metadata retrieval: getting video file info
  • Configuration: setting up backend options and frame extraction parameters
  • Setup: an interactive wizard to verify dependencies and guide configuration

Frames are extracted as base64-encoded images, and audio is processed into timestamped transcriptions. Claude receives these multimodal inputs as separate streams it can interpret jointly. The plugin’s adaptive extraction logic adjusts fps, resolution, and the time window dynamically, optimizing resource use and relevance to the query.

The stack is straightforward: TypeScript targeting Node.js 20+, with no build step required. Dependencies like ffmpeg and whisper.cpp are auto-detected or auto-installed when possible, improving developer experience.

adaptive frame extraction: bridging language with video processing

The standout technical feature is the adaptive extraction mechanism. Instead of fixed frame rates or time ranges, claude-video-vision parses user natural language queries to understand what segments and quality levels are relevant.

For example, a request like “show me the first second” triggers the plugin to set ffmpeg to extract frames only from the first second at a suitable fps and resolution. A more demanding query like “summarize this 1h lecture” scales the extraction parameters accordingly, balancing detail with performance.

This requires parsing natural language for temporal and qualitative cues, then translating those into ffmpeg command parameters. The code needs to juggle tradeoffs between extraction speed, video resolution, and how much data Claude can effectively handle.

Under the hood, this adaptive approach means the plugin doesn’t waste resources extracting unnecessary frames or processing irrelevant audio. It also means the same video can be analyzed differently depending on the user’s ask, making it versatile for a range of use cases.

The tradeoff is added complexity in parsing and command generation, plus some dependency on the quality of natural language understanding — which is ironically delegated to Claude itself.

Audio transcription is another axis where flexibility matters. The plugin supports three backends:

  • Gemini API offers a free cloud transcription option
  • Local Whisper via whisper.cpp lets you keep data on-premise and avoid API costs
  • OpenAI API offers a commercial transcription service

This choice allows users to balance cost, privacy, and accuracy. The local Whisper option is notable because it requires installing whisper.cpp, which the setup wizard helps with.

quick start: installing and configuring claude-video-vision

Getting started is straightforward inside Claude Code:

  1. Add the plugin from the marketplace:
/plugin marketplace add https://github.com/jordanrendric/claude-video-vision
  1. Install the plugin:
/plugin install claude-video-vision

The MCP server handles auto-installation of dependencies via npx from npm, no build steps needed.

For local development, the repo can be cloned and the plugin directory pointed to:

git clone https://github.com/jordanrendric/claude-video-vision.git
claude --plugin-dir /path/to/claude-video-vision

After installation, run the interactive setup wizard from within Claude Code:

/setup-video-vision

This wizard walks through backend selection, whisper configuration (if using local), frame extraction options, and dependency verification. It detects ffmpeg automatically but provides install instructions if missing.

system requirements

  • Node.js 20 or newer
  • ffmpeg installed and in PATH
  • Backend-specific keys or installations:
    • Gemini API key (free from ai.google.dev)
    • Whisper.cpp installed locally (brew install whisper-cpp on macOS or equivalent)
    • OpenAI API key

verdict: who is claude-video-vision for?

claude-video-vision is a solid tool for developers working with Claude Code who want to add video perception capabilities without reinventing the wheel. Its adaptive extraction logic stands out as a practical way to connect natural language queries with efficient video processing.

The plugin’s reliance on ffmpeg and choice of audio backends means it fits a range of use cases, from quick cloud-based transcription to fully local setups respecting privacy.

A limitation is the inherent complexity of the adaptive extraction logic and the dependency on Claude’s language understanding quality to parse queries accurately. This might not be ideal if you want strict, deterministic video processing.

The TypeScript codebase targeting Node.js 20+ is clean and pragmatic, with zero build steps required, making it easy to integrate and extend if you’re comfortable with MCP and Claude plugins.

In short, if you’re building AI agents that need to understand video content through a flexible natural language interface, this plugin provides a ready-made, well-architected foundation.


→ GitHub Repo: jordanrendric/claude-video-vision ⭐ 446 · TypeScript