The video is played by your browser, each wanted frame is drawn onto a canvas, and the results are packed into a ZIP. Nothing is uploaded — the file is decoded on your own device, which is the main reason to use this rather than a service that wants the upload before it will do anything. You choose how often to take a frame, over what range, in which format and at what size.
Before extraction starts, the number of frames, the estimated size and the estimated time are calculated and shown. That is deliberate: both time and memory scale with the frame count rather than the length of the video, so a twenty-minute clip is comfortable at one frame per second and impossible at every frame. Being told before you commit is more useful than a tab that dies four minutes in.
What limits this and why
-
Fifteen hundred frames is the ceiling:
the ZIP is assembled in memory, and that is roughly where a mid-range phone runs out. Twenty minutes at every frame would be around thirty-six thousand images and several gigabytes — a job for ffmpeg on a desktop, and the tool says so rather than letting you find out the hard way.
-
Only what your browser can play:
MP4 and WebM everywhere, MOV usually. MKV, AVI and ProRes will not open at all. That is a limit of browser video support rather than a missing feature, and no setting works around it.
-
Frame-exactness varies between browsers:
Chrome, Edge and Safari can capture frame by frame precisely. Firefox has no equivalent, so frames there are taken by seeking to a timestamp, and one may occasionally repeat or be skipped.
-
Keep the tab in front:
browsers throttle background tabs heavily. Switching away mid-run does not lose the frames already captured, but extraction slows to a crawl until you come back.
What actually limits a run is the frame count, not the video's length
Both the time a run takes and the memory it needs scale with how many frames are captured, not with how long the source video is — a twenty-minute clip is a comfortable job at one frame per second and an impossible one at every frame. The [msm_tool slug="video-frame-extractor"] calculates the frame count, the estimated size and the estimated time before anything runs, so that trade-off is visible while there is still a setting to change rather than discovered when a tab stops responding.
Fifteen hundred frames is the ceiling, and it is set for a phone
The finished ZIP is assembled in memory, and that is roughly where a mid-range phone runs out. Twenty minutes of footage at every frame is on the order of thirty-six thousand images and several gigabytes — a desktop job for different software entirely, and the tool says so up front rather than letting a long run fail partway through. One frame per second from the same video comes to a little over a thousand images, which is what most people asking for frames from a long recording actually want.
Frame-exactness depends on the browser
Chrome, Edge and Safari can step through a video frame by exact frame. Firefox has no equivalent capability, so frames there are taken by seeking to a timestamp instead, and a seek can occasionally land on the same frame twice or skip one entirely. The gap is small on most footage and worth knowing about before treating every extracted frame as guaranteed unique.
JPEG is almost always the right format
A video frame is already lossy from whatever encode produced the original file, so saving it as PNG preserves those existing compression artefacts at roughly ten times the file size rather than adding any quality that was not there to begin with. JPEG is the appropriate match for source material that was never lossless in the first place.
What it cannot open
MP4 and WebM play everywhere and MOV nearly everywhere, but MKV, AVI and ProRes will not load at all, because the browser cannot decode those containers regardless of what this tool asks of it. Converting to MP4 first resolves it — the limit sits in the browser's own format support, not in a setting here.
Stopping keeps what has already been captured
Frames already extracted when a run is stopped are packed into a ZIP and offered as normal, so a range or interval chosen wrongly costs the time spent waiting rather than the frames already taken.