Frame extractor

Extract the perfect frame from any video

Step one true frame at a time, take a whole run at an interval, or let the difference graph find the cuts for you. Everything decodes in this tab and the file never goes anywhere.

Measured frame rateCapture waits for the frameBatch and scene cutsNothing leaves your device

Drag & drop a video or click to upload

MP4 · WebM · MOV and anything else your browser can decode — the file never leaves your device

How it works

1

Drop a video

Anything the browser can decode. The size, the resolution and the real frame rate are read off the file itself — the fps box is gone because it was a guess.

2

Land on the frame

Arrow keys step whole frames and each step waits for the picture to change. Zoom with the wheel to check focus, and hold Alt to compare against your last capture.

3

Or take a whole run

Every N seconds, N evenly spaced, or every frame of a range. The scene scanner draws the difference between samples so you can move the threshold instead of trusting it.

4

Export

PNG, JPG or WebP, at full size or scaled down, one at a time or as a ZIP. The gallery tells you how much memory it is holding, and hands a frame straight to the next tool.

The capture waits for the frame

Seeking is asynchronous, so drawing the video straight after moving grabs whatever was on screen before — usually the previous frame. Every capture here awaits the frame that is actually presented.

The frame rate is measured

requestVideoFrameCallback reports the presentation time of each frame, so the rate comes from the video instead of a box you had to fill in. Common rates snap, but 23.976 stays 23.976.

Batch extraction

Every N seconds, N evenly spaced across a range, or every frame between two points. It shows how many it will take before it starts, and stops the moment you ask.

Scene-cut detection

A luma difference between downscaled samples, plotted as a graph you can click. The threshold is a number you control, not a hidden verdict.

Zoom to the cursor

Wheel-zoom up to 12×, drag to pan, double-click to reset — for checking focus or reading small text before you commit to a still.

Memory you can see

Full-size blobs add up fast, so the strip shows thumbnails, every frame reports its own weight, and the total warns you before the tab gets heavy.

Nothing is uploaded

The video is decoded by the browser from a local object URL. No server, no queue, no telemetry on what you are working with.

Hands off to the rest of the suite

Send a frame straight to CropSnap, CompressSnap, the background remover or MemeBolt without downloading and re-uploading it.

video frame extractor

The frame you saw, not the one before it

The frame rate is measured from the video itself and every capture waits for the frame to actually be on screen, so the still you save is the still you were looking at.

Decoded by the browser you already have

The video is played from a local object URL and the frames are drawn to a canvas, so extraction runs at the speed of your own decoder with no encoding queue in front of it. Nothing is uploaded, nothing waits on a server, and closing the tab is all it takes to be rid of the file.

Thumbnails, evidence, reference, proof

Thumbnails, evidence, reference, proof

Pulling the cleanest still for a thumbnail, catching the exact frame where a bug appears, collecting reference for a design, or documenting what happened at 00:04:11 — all of them need the frame you were looking at, not the one before it. With the rate measured and the seek awaited, the frame number on screen is the frame number in the file, and stepping back and forth lands on the same picture every time.

100% Private & Secure

Your video stays on your device. There are no uploads, no databases and no tracking — the file lives only in local memory and disappears when you close the tab.

Frequently Asked Questions

QIs my video uploaded anywhere?+

No. The browser decodes it from a local object URL and the frames are drawn to a canvas in the same tab. There is no server component, and the file is gone when you close the page.

QHow does it know the frame rate?+

It measures it. The video plays muted for a fraction of a second while requestVideoFrameCallback reports the presentation time of each frame, and the median gap becomes the rate. Where the browser does not provide that callback the tool says so instead of pretending.

QWhy is stepping slower than it used to be?+

Because each step now waits for the new frame to be presented before it says it has moved. That wait is the difference between saving the frame you are looking at and saving the previous one.

QCan I extract many frames at once?+

Yes. The batch tab takes one every N seconds, N evenly spaced across a range, or every frame between two points, up to 500 at a time. It tells you the count before it starts and stops as soon as you press Stop or Escape.

QWhat does scene detection actually measure?+

The mean absolute luma difference between consecutive samples taken at a 64-pixel-wide downscale. Everything is plotted, so you can see how far each sample sits from your threshold and move the threshold rather than trust a hidden score.

QIn what quality are frames exported?+

At the video’s native resolution by default, as lossless PNG or as JPG/WebP with a quality slider. You can also export at 50% or 25% when you need a contact sheet rather than a master.

Related searches

video frame extractorextract frame from videovideo to imageframe by framevideo screenshotscene detectionbatch frame exportsave video still
Part of the oLoveTools suite
oLoveTools

Exact frames out of any video, measured and local.

Decoded by the browser you already have

The video is played from a local object URL and the frames are drawn to a canvas, so extraction runs at the speed of your own decoder with no encoding queue in front of it. Nothing is uploaded, nothing waits on a server, and closing the tab is all it takes to be rid of the file.

Thumbnails, evidence, reference, proof

Pulling the cleanest still for a thumbnail, catching the exact frame where a bug appears, collecting reference for a design, or documenting what happened at 00:04:11 — all of them need the frame you were looking at, not the one before it. With the rate measured and the seek awaited, the frame number on screen is the frame number in the file, and stepping back and forth lands on the same picture every time.

100% Private & Secure

Your video stays on your device. There are no uploads, no databases and no tracking — the file lives only in local memory and disappears when you close the tab.

video frame extractorextract frame from videovideo to imageframe by framevideo screenshotscene detectionbatch frame exportsave video still

Frequently Asked Questions

Is my video uploaded anywhere?

No. The browser decodes it from a local object URL and the frames are drawn to a canvas in the same tab. There is no server component, and the file is gone when you close the page.

How does it know the frame rate?

It measures it. The video plays muted for a fraction of a second while requestVideoFrameCallback reports the presentation time of each frame, and the median gap becomes the rate. Where the browser does not provide that callback the tool says so instead of pretending.

Why is stepping slower than it used to be?

Because each step now waits for the new frame to be presented before it says it has moved. That wait is the difference between saving the frame you are looking at and saving the previous one.

Can I extract many frames at once?

Yes. The batch tab takes one every N seconds, N evenly spaced across a range, or every frame between two points, up to 500 at a time. It tells you the count before it starts and stops as soon as you press Stop or Escape.

What does scene detection actually measure?

The mean absolute luma difference between consecutive samples taken at a 64-pixel-wide downscale. Everything is plotted, so you can see how far each sample sits from your threshold and move the threshold rather than trust a hidden score.

In what quality are frames exported?

At the video’s native resolution by default, as lossless PNG or as JPG/WebP with a quality slider. You can also export at 50% or 25% when you need a contact sheet rather than a master.

© 2026 oLoveToolsAbout

Next step

Compress the frame CompressSnap Remove the background Background Remover

FrameSnap | Extract Frames From Video Online

Extract exact frames from a video in your browser. The frame rate is measured, not guessed, every capture waits for the frame to be on screen, and batch extraction and scene-cut detection come as standard. Nothing is uploaded.

Why "one frame back" is harder than it looks

An HTML video element has no notion of a frame. It has a current time in seconds, and setting it starts an asynchronous seek that finishes whenever the decoder gets there. Almost every browser-based frame grabber therefore does two hopeful things: it divides one second by a frame rate the user typed into a box, and it draws the video onto a canvas the instant after moving. Both are wrong in the same direction. If the real rate is 23.976 and the box says 24, the position drifts by a whole frame every forty-two seconds; and if the seek has not landed yet, the canvas receives the frame that was on screen before the move. This tool removes both guesses: requestVideoFrameCallback reports the presentation timestamp of each frame that the compositor actually shows, which makes the rate measurable and makes it possible to wait for a specific frame rather than hope for it.

The same awaited seek is what makes the rest possible. A batch run is a loop of seek-and-wait, so asking for one frame every two seconds actually returns frames two seconds apart rather than whatever the decoder happened to have ready. Scene detection is the same loop with a comparison in the middle: each sample is downscaled to 64 pixels wide and compared to the previous one by mean absolute luma difference, and every score is plotted so the threshold is something you argue with rather than something the tool decides for you. What is left is bookkeeping, and it matters more than it sounds: a dozen 4K PNGs is half a gigabyte of live blobs, so the gallery shows thumbnails, each capture reports its own size, and the running total says when it is time to download and clear. All of it in the tab, on a file that never moves.

Frequently Asked Questions

Is my video uploaded anywhere?

No. The browser decodes it from a local object URL and the frames are drawn to a canvas in the same tab. There is no server component, and the file is gone when you close the page.

How does it know the frame rate?

It measures it. The video plays muted for a fraction of a second while requestVideoFrameCallback reports the presentation time of each frame, and the median gap becomes the rate. Where the browser does not provide that callback the tool says so instead of pretending.

Why is stepping slower than it used to be?

Because each step now waits for the new frame to be presented before it says it has moved. That wait is the difference between saving the frame you are looking at and saving the previous one.

Can I extract many frames at once?

Yes. The batch tab takes one every N seconds, N evenly spaced across a range, or every frame between two points, up to 500 at a time. It tells you the count before it starts and stops as soon as you press Stop or Escape.

What does scene detection actually measure?

The mean absolute luma difference between consecutive samples taken at a 64-pixel-wide downscale. Everything is plotted, so you can see how far each sample sits from your threshold and move the threshold rather than trust a hidden score.

In what quality are frames exported?

At the video’s native resolution by default, as lossless PNG or as JPG/WebP with a quality slider. You can also export at 50% or 25% when you need a contact sheet rather than a master.

Related searches

video frame extractor, extract frame from video, video to image, frame by frame, video screenshot, scene detection, batch frame export, save video still