ffmpeg-analyse-video — Claude Code skill
Pulls frames out of a video with ffmpeg, hands the images to sub-agents and returns a step-by-step summary with timestamps.
npx skills add fabriqaai/ffmpeg-analyse-video-skill --skill ffmpeg-analyse-video -a claude-codeWhat ffmpeg-analyse-video does
The skill runs a three-phase pipeline. ffprobe collects the metadata: duration, resolution, fps, codec, whether there is an audio track. Then ffmpeg exports JPEG frames, and the looking is delegated to sub-agents. A sub-agent reads its batch of frames and writes a markdown report to batch_N_analysis.md; the main agent opens only those files. Frames never land in the main context, so the conversation stays usable for follow-up questions.
Frame sampling scales with length. Short clips get one frame every 2 seconds, up to 10 minutes the skill detects scene changes at a 0.3 threshold, up to 30 minutes it keeps keyframes only, and longer files go through the thumbnail filter with a segment size chosen so the output stays near 60 frames. If scene detection returns nothing, the skill falls back to a fixed interval; an oversized batch gets evenly subsampled.
The skill stops at step one if ffmpeg and ffprobe are not both in PATH: install them first, for example brew install ffmpeg on macOS. On a tool with no sub-agent support the frames are read in the main context, and the skill advises capping that at 20 frames.
What it helps with
- work out what happens during a long screen recording
- build a step list with timestamps from a tutorial
- read a presentation without watching it end to end
- locate the moment an error or command flashed on screen
- describe the visuals of an animation for a write-up
Example prompts for the agent
- Analyse
demo.mp4frame by frame and give me a summary with timestamps - What happens in this screen recording? I need the steps and their times
- Go through 2:00 to 5:00 of
lecture.mkvand walk me through it
How to install ffmpeg-analyse-video
1Skills CLI (Vercel)
npx skills add fabriqaai/ffmpeg-analyse-video-skill --skill ffmpeg-analyse-video -a claude-code2Manually: put the files in place
~/.claude/skills/ffmpeg-analyse-video/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ffmpeg-analyse-video/
1Skills CLI (Vercel)
npx skills add fabriqaai/ffmpeg-analyse-video-skill --skill ffmpeg-analyse-video -a codex2Manually: put the files in place
.agents/skills/ffmpeg-analyse-video/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add fabriqaai/ffmpeg-analyse-video-skill --skill ffmpeg-analyse-video -a cursor2Manually: put the files in place
.cursor/skills/ffmpeg-analyse-video/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install fabriqaai/ffmpeg-analyse-video-skill ffmpeg-analyse-video2Manually: put the files in place
.github/skills/ffmpeg-analyse-video/SKILL.md1Skills CLI (Vercel)
npx skills add fabriqaai/ffmpeg-analyse-video-skill --skill ffmpeg-analyse-video -a gemini-cli2Platform CLI
gemini skills install https://github.com/fabriqaai/ffmpeg-analyse-video-skillManually: put the files in place
.devin/skills/ffmpeg-analyse-video/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add fabriqaai/ffmpeg-analyse-video-skill --skill ffmpeg-analyse-video -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about ffmpeg-analyse-video
How do I install ffmpeg-analyse-video in Claude Code?
Run npx skills add fabriqaai/ffmpeg-analyse-video-skill --skill ffmpeg-analyse-video -a claude-code. The skill file lands at ~/.claude/skills/ffmpeg-analyse-video/SKILL.md.
What does ffmpeg-analyse-video do?
It splits a video into frames with ffmpeg, sends batches of frames to sub-agents and stitches their text reports into one summary with timestamps.
What does the skill need to run?
Both ffmpeg and ffprobe on PATH, since the first step checks for them and halts otherwise. The agent also needs a way to spin up sub-agents that can read images; without it, frames are read in the main context.