video-understand
Understand video content locally using ffmpeg frame extraction and Whisper transcription. No API keys needed. Use when: (1) Understanding what a video contains, (2) Transcribing video audio locally, (3) Extracting key frames for visual analysis, (4) Getting video content without API keys.
By calesthio · 879 installs
npx skills add calesthio/openmontage --skill video-understand
Source repository · Upstream listing
video understand
Understand video content locally using ffmpeg for frame extraction and Whisper for transcription. Fully offline, no API keys required.
Prerequisites
ffmpeg + ffprobe (required): brew install ffmpeg
openai whisper (optional, for transcription): pip install openai whisper
Commands
CLI Options
Flag Description
video Input video file (positional, required)
m, mode Extraction mode: scene (default), keyframe , interval
max frames Maximum frames to keep (default: 20)
whisper model Whisper model size: tiny, base, small, medium, large (default: base)
no transcribe Skip audio transcription, extract frames only
o, output Write result JSON to file instead of stdout
q, quiet Suppress progress messages, output only JSON
Extraction Modes
Mode How it works Best for
scene Detects scene changes via ffmpeg select='gt(scene,0.3)' Most videos, varied content
keyframe Extracts I frames (codec keyframes) Encoded video with natural keyframe placement
interval Evenly spaced frames based on duration and max frames Fixed sampling, predictable output
If scene mode detects no scene changes, it automatically falls back to interval mode.
Output
The script outputs JSON to stdout (or file with o ). See references/output format.md for the full schema.
Use the Read tool on frame image paths to visually inspect extracted frames.
References
references/output format.md Full JSON output schema documentation