VID · Video tools

Video Frame Extractor

Shareable link

Settings are written to the URL as you change them. Nothing differs from the defaults yet.

Take stills out of a clip. Scrub to a frame and save it, or export a spread of frames across the video, one every few seconds, the frames at a list of times, or every single frame of a short range, each as its own image file in a ZIP. A contact sheet puts the same spread into one image with timecodes.

One frame

Pause the preview on the frame you want and press Save the frame at the playhead. The image is taken from the player at the source’s size and saved in the chosen format. This is the screenshot that avoids the player’s controls, the window chrome, and the display’s scaling.

A batch

  • N frames, evenly spaced divides the range into N slots and takes the frame at the centre of each, so the first is not a black lead-in frame.
  • One every N seconds starts at the range’s beginning and steps forward by the interval.
  • At times takes the frames at the seconds you type, separated by commas. Add the playhead appends the current frame’s time.
  • Every frame decodes the whole range, frame by frame. At 30 fps that is 30 files a second, so the handles on the timeline matter here.

A batch of more than one frame downloads as a ZIP, with each file named by its index and its time: clip-frame-0007-12.500s.jpg. The first frames are previewed under the controls once the export finishes.

Format and size

JPEG is the right choice for stills from footage: a 1080p frame is 150 to 400 KB at 90%, against 2 to 3 MB as PNG. PNG keeps exact pixels, which matters for screen recordings and anything with text. WebP lands below JPEG at the same quality and keeps PNG’s sharp edges in lossless areas.

Frames are extracted at the source’s display size, rotation applied. The size cap scales them down by the long edge and never up.

Memory

Every image is held in memory until the ZIP is built, which is why an export is capped at 300 frames, and why PNG at 1080p is a poor choice for a large batch. The size estimate is checked before decoding starts, and an export that would not fit is refused with a message rather than crashing the tab.

Contact sheet

Contact sheet mode lays the spread of frames into a grid in one image: evenly spaced over the range, as many as the frame count says up to 100, with a timecode under each cell. Columns and cell width set the layout; the frame’s own shape sets the cell’s height. Four columns of 320 px cells gives a sheet about 1300 px wide, which reads at a glance in a message or a review.

Frequently Asked Questions

A chosen number spread evenly over the range, one every N seconds, the frames at the times you list, or every frame in the range. Drag the handles on the timeline to limit the range, or pause on a frame and save that one alone with the button at the top of the controls.

300. Every frame of a 30 fps clip reaches that in ten seconds, so narrow the range with the handles or take one frame every N seconds instead. The frames are held in memory until the ZIP is built, and a batch that would not fit is refused before it starts.

JPEG at 90% for photos and video stills, where it is a tenth the size of PNG. PNG for screen recordings and UI, where its exact pixels matter and the flat areas compress well. WebP is smaller than both at similar quality, and opens in every current browser.

The source's display size by default, with the rotation applied. The Size menu caps the long edge at 1080p, 720p, or 480p for smaller files; frames are never upscaled.

One image with a grid of evenly spaced frames and the timecode under each, up to 100 frames. Set the columns and the width of each cell. It is the overview you send with a clip, or keep instead of a folder of stills.

A video has a frame only every 1/30 or 1/25 of a second, and the frame showing at the requested time is the one decoded. The file name carries the time you asked for; the frame is the one a player would show there.

Explore Our Tools

Browse all tools