extract-video-frames

Extracts timestamped PNG frames and aligned AAC audio segments from video files using ffmpeg.

1.3k|152|Updated Jun 13, 2025
One-click install
npx skills add https://github.com/qdhenry/Claude-Command-Suite --skill extract-video-frames
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extract-video-frames
Source: https://github.com/qdhenry/Claude-Command-Suite/tree/main/.claude/skills/extract-video-frames
Command: npx skills add https://github.com/qdhenry/Claude-Command-Suite --skill extract-video-frames

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires ffmpeg, ffprobe, and includes scripts (resource) components.

What problem does it solve?

Analyzing video content with AI requires breaking recordings into discrete, reviewable pieces. This Skill converts GIF, MP4, and MOV files into timestamped PNG frames paired with aligned audio segments, plus a JSON manifest, so another agent can perform visual review or transcription without manual video scrubbing.

Core Features & Use Cases

  • Interval-Based Frame Extraction: Pulls one PNG frame every N seconds (configurable, default 1s) from any ffmpeg-supported video format.
  • Aligned Audio Segments: Generates per-frame AAC audio clips covering the same time window as each frame, plus a full continuous audio track for transcription.
  • Structured Manifest Output: Produces manifest.json with timestamps, frame paths, and audio paths ready for handoff to a reviewing agent.
  • Use Case: You have a screen recording of a user session and want an agent to review what happened. Run the extraction script, then pass the output directory to a reviewing agent that reads the manifest and analyzes each frame with its paired audio.

Quick Start

Ask the AI to extract frames and audio from your video file, for example: "Extract frames every 2 seconds from recording.mp4 into ./review-frames using the extract-video-frames skill."

Frequently Asked Questions about extract-video-frames

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I extract frames from a video at specific intervals?

Run the extract-frames.sh script with the video path and an interval in seconds, for example extract-frames.sh input.mp4 2 for one frame every 2 seconds. It uses ffmpeg's fps filter to sample frames and writes them as sequentially numbered PNG files.

How to extract audio segments aligned with video frames?

The script automatically detects the audio stream with ffprobe and cuts one AAC segment per frame covering the same time window. It also produces a full_audio.aac track containing the complete audio for continuous transcription.

What video formats does ffmpeg frame extraction support?

The script supports GIF, MP4, and MOV explicitly, plus any format ffmpeg can decode such as AVI, WebM, and MKV. GIFs and silent videos are handled gracefully by skipping audio extraction and setting has_audio to false in the manifest.

Why does frame extraction fail with ffmpeg not found?

The script requires ffmpeg and ffprobe installed on the system and exits with an error if they are missing. Install them with brew install ffmpeg on macOS or your platform's package manager before running extraction.

What happens when a video has no audio stream?

When no audio stream is detected, the script skips all audio extraction, sets has_audio to false in manifest.json, and writes null for every audio_path field. Frame extraction proceeds identically regardless of audio presence.