video-frames

Extract frames, thumbnails, and short clips from video files using ffmpeg.

Updated Mar 20, 2026
One-click install
npx skills add https://github.com/astralform-ai/skills --skill video-frames-astralform-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: video-frames
Source: https://github.com/astralform-ai/skills/tree/main/skills/video-frames
Command: npx skills add https://github.com/astralform-ai/skills --skill video-frames-astralform-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Inspecting a specific moment in a video or generating thumbnails normally requires opening a video editor and manually scrubbing through footage. This Skill provides ready-to-use ffmpeg commands to extract frames, keyframes, and short clips directly from the command line. ## Core Features & Use Cases - Single Frame Extraction: Grab the first frame, a frame at a specific timestamp, or a frame by index for thumbnails and screenshots. - Batch Frame Extraction: Extract one frame per second, one frame every N seconds, or only keyframes at scene changes. - Clip Extraction & Metadata: Cut short clips with stream copy and inspect video metadata (duration, resolution, codec, fps) via ffprobe. - Use Case: You need a thumbnail for a 10-minute product demo video. Extract the frame at the 30-second mark as a high-quality JPEG in one command. ## Quick Start Extract a frame from my video file demo.mp4 at the 10-second mark and save it as a JPEG thumbnail.

Frequently Asked Questions about video-frames

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

FAQPage Schema
How do I extract a frame from a video with ffmpeg?

Use ffmpeg with the -ss flag for the timestamp and -frames:v 1 to output a single frame, for example: ffmpeg -ss 00:00:10 -i video.mp4 -frames:v 1 frame.jpg. Placing -ss before -i enables fast input seeking.

How to extract one frame per second from a video?

Use the fps filter: ffmpeg -i video.mp4 -vf fps=1 frames_%04d.jpg. For one frame every N seconds, use a fractional rate like fps=1/5 to capture a frame every five seconds.

How do I extract only keyframes or scene changes from a video?

Use the select filter with pict_type: ffmpeg -i video.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr keyframe_%04d.jpg. This outputs only I-frames, which typically correspond to scene changes.

Does ffmpeg frame extraction work without re-encoding the video?

Frame extraction decodes the video to produce images, but clip extraction can avoid re-encoding by using -c copy, which copies the stream directly. This makes short clip extraction very fast while preserving original quality.

Why is my ffmpeg frame extraction slow or inaccurate at timestamps?

Placing -ss before -i uses fast input seeking, which may land on the nearest keyframe rather than the exact frame. Placing -ss after -i gives precise frame-accurate seeking but decodes from the start, making it slower.