User Rating 0.0
Total Usage 0 times
Category Media Tools

Drop a video file here or browse

MP4, WebM, MOV, OGG supported

Is this tool helpful?

Your feedback helps us improve.

About

Extracting a single frame from a video stream requires sub-second temporal precision. A 30 fps video contains 1800 individual frames per minute. Selecting the wrong frame - even 33 ms off - produces motion blur or closed eyes in a portrait still. This tool renders the exact frame at time t by seeking the browser's native decoder and drawing the decoded pixel buffer onto a Canvas element at the video's original resolution. Output quality depends on codec: H.264 keyframe intervals (typically every 2 - 5 s) mean inter-frame seeks may show minor decode artifacts on older browsers. For critical work, seek to the nearest keyframe first.

Batch extraction divides the video duration into n equal segments and captures one frame per interval. All processing runs client-side. Your video never leaves your device. Supported containers depend on your browser's built-in codecs - Chrome handles WebM/VP9 and MP4/H.264; Safari prefers MP4/H.264/HEVC. This tool approximates frame position using the currentTime property, which has millisecond granularity but not sample-accurate precision. For frame-exact editing, a non-linear editor is required.

video frame grabber extract frames from video video screenshot video to image frame capture tool video frame extractor

Formulas

Frame timestamp from batch index:

ti = in × D

where ti = seek time for frame i, n = total number of frames to extract, D = video duration in seconds, and i {0, 1, ..., n 1}.

Canvas pixel capture is performed via:

ctx.drawImage(video, 0, 0, W, H)

where W = video.videoWidth and H = video.videoHeight. The canvas dimensions match the native video resolution to prevent scaling artifacts.

JPEG/WebP file size approximation:

S W × H × 3 × (1 q) bytes

where q [0, 1] is the compression quality parameter. This is a rough heuristic. Actual size varies with scene complexity.

Reference Data

ContainerCommon CodecsTypical FPSKeyframe IntervalChromeFirefoxSafariMax Resolution (Common)
MP4H.264, H.26524 - 60 fps2 - 5 s8192 × 4320
WebMVP8, VP9, AV124 - 60 fps2 - 10 s7680 × 4320
MOVH.264, ProRes24 - 120 fps1 - 5 sPartial4096 × 2160
AVIMPEG-4, DivX24 - 30 fpsEvery frame1920 × 1080
OGVTheora24 - 30 fps4 - 8 s1920 × 1080
MKVH.264, VP924 - 60 fpsVariesPartialPartial7680 × 4320
3GPH.263, H.26415 - 30 fps1 - 3 s1280 × 720
FLVSorenson, VP624 - 30 fps2 s1920 × 1080
Output Format Comparison
PNGLossless~2 - 8 MB per 1080pBest for screenshots, UI, text overlays
JPEGLossy (0 - 100%)~100 - 500 KB per 1080pBest for photos, thumbnails, web
WebPLossy/Lossless~80 - 400 KB per 1080pBest compression-to-quality ratio

Frequently Asked Questions

Video codecs store most frames as delta-frames (P-frames and B-frames) that reference keyframes (I-frames). When you seek to a non-keyframe time, the browser must reconstruct the frame from the nearest keyframe. On some browsers and codecs, this reconstruction may introduce slight softness. For the sharpest result, pause the video and use the single-frame grab button. H.264 with short keyframe intervals (every 1-2 seconds) produces the cleanest seeks.
Canvas elements in most browsers support up to 16384 × 16384 pixels, but practical limits depend on available GPU memory. A 4K video (3840 × 2160) works reliably. 8K video may cause Canvas allocation failures on devices with less than 4 GB VRAM. If extraction fails on a large file, the tool reports the error and suggests reducing the output scale.
No. The HTML5 video element exposes time in seconds with millisecond precision, not frame indices. The seek resolution depends on the codec's keyframe structure. For a 30 fps video, each frame occupies ~33.3 ms. The browser snaps to the nearest decodable frame. For frame-exact extraction, professional tools like FFmpeg with -vsync 0 are required.
Browser video support depends on built-in codecs. Chrome supports MP4 (H.264), WebM (VP8/VP9/AV1), and OGG. Safari supports MP4 (H.264/HEVC). AVI, MKV, and FLV containers are generally unsupported. Convert your video to MP4 (H.264) first using a tool like FFmpeg or HandBrake before loading it here.
PNG is lossless and preserves every pixel, producing the largest files (~2-8 MB per 1080p frame). Use it when you need pixel-perfect accuracy, such as for graphic design or OCR. JPEG at 92% quality is ideal for photographic content and web thumbnails at ~200-500 KB. WebP offers the best compression-to-quality ratio at ~30% smaller than equivalent JPEG but has limited support in older software.
No. The video is loaded into the browser using a local object URL (blob:// protocol). All frame extraction happens via the Canvas API on your device. No data leaves your machine. You can verify this by disconnecting from the internet - the tool continues to function normally.