CrispKit › Guides

How to extract frames from a video

By CrispKit · Last updated

To extract a frame from a video, open it in a frame extractor, step to the exact frame and save it as a PNG. For many frames, extract every Nth frame or one every few seconds and download them as a zip, or use FFmpeg: ffmpeg -i in.mp4 -vf fps=1 img-%03d.png saves one frame per second.

The Video Frame Extractor does it in your browser for MP4, MOV, WebM and GIF, without uploading the video.

Save one exact frame

  1. Open the video in the Video Frame Extractor: MP4, MOV, WebM or an animated GIF.
  2. Find the moment. Drag the timeline, then step one frame at a time with the arrow buttons or the ← and → keys. You can also type a frame number.
  3. Press Save this frame. You get a PNG at the video's full resolution: 1920 × 1080 from a 1080p video, 3840 × 2160 from 4K.

PNG is a lossless format, so the saved frame has no extra compression on top of the video's own. It can't be sharper than the video, though: motion blur and compression blocks in the source stay.

Extract many frames

Pick a mode, set the time range, and press Extract frames. Here is what each mode gives on a 60-second clip at 30 frames per second, which has 60 × 30 = 1800 frames:

ModeSettingFrames you getCount
Every Nth frameN = 30Frames 1, 31, 61 … 177160
Every Nth frameN = 60Frames 1, 61, 121 … 174130
One frame every X secondsX = 1The frame on screen at 0 s, 1 s, 2 s … 59 s60
One frame every X secondsX = 50 s, 5 s, 10 s … 55 s12
Every frame in a range10 s to 12 sFrames 301 to 361, both ends included61

The rule of thumb: frames = seconds × frame rate, and every Nth frame divides that by N. One batch makes up to 500 images. At full size the tool also limits a batch to 750 million pixels so it fits in your browser's memory: about 361 frames at 1920 × 1080 or 90 at 3840 × 2160. Choose a smaller size, or a larger N, for more.

PNG or JPG?

Why "the frame at 12.5 seconds" isn't always exact

Jumping to a time doesn't always land on an exact frame. FFmpeg's documentation puts it plainly: in most formats it isn't possible to seek exactly, so FFmpeg seeks to the closest seek point before the position and then decodes forward to it.

The Video Frame Extractor reads the frame list of MP4 and MOV files and decodes the exact frame you pick, so frame 120 is always frame 120. WebM and other formats are read by seeking, so the frame number can be off by one.

With FFmpeg on the command line

FFmpeg is a free, open-source command-line tool. These commands were run on the same 60-second, 30 fps clip:

GoalCommandFiles
Every frameffmpeg -i in.mp4 img-%04d.png1800
One frame per secondffmpeg -i in.mp4 -vf fps=1 img-%03d.png60
Every 30th frameffmpeg -i in.mp4 -vf "select='not(mod(n\,30))'" -fps_mode vfr img-%03d.png60
Every frame from 10 s to 12 sffmpeg -i in.mp4 -vf "select='between(t\,10\,12)'" -fps_mode vfr img-%03d.png61
One frame at 12.5 sffmpeg -ss 12.5 -i in.mp4 -frames:v 1 frame.png1

Frames from a GIF

A GIF is already a list of frames, each with its own delay. Open it in the Video Frame Extractor and every frame is listed with its delay in milliseconds. Each one is shown as it appears in the animation, with the earlier frames drawn underneath, and transparency is kept when you save it as PNG.

Do it with the free Video Frame Extractor

  1. Open the Video Frame Extractor and choose a video or GIF.
  2. Step to the frame and press Save this frame, or pick a mode and press Extract frames.
  3. Download single images or all of them as a zip.

Your video is decoded in your browser and never uploaded. Videos up to 500 MB and GIFs up to 100 MB.

Open the Video Frame Extractor

FAQ

How do I extract a single frame from a video?

Open the video in a frame extractor, step to the frame with the arrow keys and save it as a PNG. With FFmpeg: ffmpeg -ss 12.5 -i in.mp4 -frames:v 1 frame.png saves the frame at 12.5 seconds.

How many frames are in a video?

Length in seconds times the frame rate. A 60-second clip at 30 fps has 1800 frames; at 24 fps it has 1440.

Are extracted frames full quality?

They're as sharp as the video. Saved at original size as PNG, a 1080p video gives 1920 × 1080 frames with no extra compression loss.

How do I extract one frame per second?

In the Video Frame Extractor, choose One frame every X seconds and set X to 1. In FFmpeg, use -vf fps=1.

Can I extract frames from a YouTube link?

Not with this tool. It works on video files saved on your device and doesn't download anything from links. Use a file you have the right to use.

How do I convert MP4 to PNG?

Extract the frames you want as PNG: one with Save this frame, or a batch with Extract frames, which downloads as a zip.

Related

Sources

Each page below was read on 27 October 2026. The FFmpeg commands below were also run on a 60-second, 30 fps test clip with FFmpeg 8.1 to get the file counts shown.

  1. FFmpeg documentation, ffmpeg (§5.4 Main options, -fps_mode). -ss as an input option, "in most formats it is not possible to seek exactly", -frames:v, and the -fps_mode cfr/vfr/passthrough modes.
  2. FFmpeg Filters Documentation (fps §11.99, select §20.17). The fps filter, and the select filter's n, t and scene variables with the examples not(mod(n\,100)), between(t\,10\,20) and gt(scene\,0.4).
  3. W3C, Portable Network Graphics (PNG) Specification, Third Edition. PNG is a format for "lossless, portable, well-compressed storage" of raster images. W3C Recommendation, 24 June 2025.
  4. FFmpeg Formats Documentation (image2 muxer). Writing numbered image sequences such as img-%03d.jpeg.