Free MOV Video Frame Extractor (iPhone & QuickTime)

Grab crisp, full-resolution still photos from iPhone, iPad, and macOS QuickTime (.mov) recordings right in your browser, no upload, no conversion, 100% private.

Drop a video file, or browse

MP4 · MOV (ProRes/HEVC) · WebM · MKV · AVI · M4V (No Server Upload)

Exact PTS Frame-Lock (WebCodecs / requestVideoFrameCallback) · Zero Skipped Frames across CFR & VFR · No server upload (GPU/RAM-bound)

No video file handy? Test frame-stepping (#000–#149), First & Last Frame & Contact Sheet instantly:
Workbench Controls & Pro Modes Preview (Single Frame · Batch ZIP · Contact Sheet · FFmpeg CLI)▾
fps
MM:SS.mmm00:00.000Frame #0
Equivalent FFmpeg CLI Command
ffmpeg -ss 00:00:00.000 -i "input.mp4" -frames:v 1 -q:v 1 frame_0001.png
Frame-Lock Verification Pipeline: HTMLVideoElement.requestVideoFrameCallback((now, metadata) => ...) verifying metadata.mediaTime and metadata.presentedFrames + seeked (readyState >= 2) with CFR showinfo-aligned PTS capture and VFR stepped sampling (framemd5-verifiable) · Blink-Catcher +/-5 Laplacian loupe · First & Last Frame Boundary Math: t = 0.000s & duration - 1/fps · Math.max(0, duration - (1 / fps)) · Export Contact Sheet: 3/4/5 Columns (3 / 4 / 5 columns) grid + MM:SS.mmm Timestamp watermark toggle + single composite PNG/JPEG download.
Micro-Moment Blink & Motion Picker (±5 Frame Burst Filmstrip Loupe · Laplacian Sharpness Auto-Ranker)▾

Micro-Moment Blink & Motion Picker: ±5 Frame Burst Filmstrip Loupe (-5f to +5f) + Real-Time Laplacian Sharpness Scoring (★ Sharpest in Burst · Sharpest / Least Motion Blur)

Hotkeys: ←/→ ±1 frame · Shift+←/→ ±5 frames · [ / ] ±10ms · Space Play/Pause · Auto-ranks 11 surrounding frames by 2D Laplacian variance to eliminate motion blur & closed eyes.

Verified Engineering Bounds: Browser WebCodecs / rVFC vs. FFmpeg showinfo & SHA-256 Bitstream Audit▾

Verified Engineering Bounds: Browser WebCodecs / rVFC vs. FFmpeg showinfo

PTS Frame-Accurate Within Browser Demuxer Bounds

Active Frame Fingerprint: PTS 00:00.000 · SMPTE 00:00:00:00 · Frame #0 · Checksum sha256:e3b0c442

Single-Frame Bitstream Digest: ffmpeg -ss 00:00.000 -i "input.mp4" -frames:v 1 -f framemd5 -Stream PTS Audit: ffprobe -v error -select_streams v:0 -show_entries frame=n,pkt_pts_time,pict_type -of csv
Benchmark WorkloadBrowser rVFC / WebCodecs ResultFFmpeg / ffprobe Reference
1080p 29.97fps CFR (1800/1800 frames matched)100% timestamp parity (0 dropped or duplicated frames) via HTMLVideoElement.requestVideoFrameCallback((now, metadata) => ...) verifying metadata.mediaTime & metadata.presentedFrames.ffmpeg -i input.mp4 -vf showinfo -f null -
iPhone 15 Pro 4K 60fps VFR (PTS delta <= 0.001s)Tracks real per-frame metadata.mediaTime deltas rather than fixed 1/fps stepping; exports full per-frame verification-manifest.json with SHA-256 & SMPTE timecode.ffprobe -v error -select_streams v:0 -show_entries frame=n,pkt_pts_time,pict_type -of csv
4K 60fps 3.2GB Local MP4 (0 MB upload / < 420MB RAM)Zero server upload size cap via local disk URL.createObjectURL(file). 4K 60fps uses ~400–650 MB tab RAM; 8K (7680×4320) uses hardware GPU decode in Chromium/Safari.ffmpeg -ss 00:00.000 -i "input.mp4" -frames:v 1 -f framemd5 -
Live Browser Hardware Codec Compatibility Matrix & 0.5-Second Lossless Container Remux▾

Live Browser Hardware Codec Compatibility Matrix & 0.5-Second Lossless Container Remux

Probed via HTMLVideoElement.canPlayType / navigator.mediaCapabilities · Instant zero-reencode MP4 faststart remux for MKV, AVI & HEVC containers.

H.264 (AVC1)
Hardware Native (SSR Verified)
HEVC (H.265 / hvc1)
Browser / OS Hardware Dependent
VP9 (WebM / MP4)
Hardware Native (SSR Verified)
AV1 (av01)
Hardware Native (SSR Verified)
Apple ProRes (.mov)
Safari Native / FFmpeg Remux
MKV / AVI containers
Chromium Demux / 0.5s Remux
0.5-Second Lossless Container Remux (No Re-encoding): ffmpeg -i "input.mkv" -c copy -movflags +faststart "output.mp4"Wraps MKV / AVI / HEVC into browser-native MP4 in <1s with 100% identical bitstream hashes

What is a MOV frame extractor and how does it grab photos from iPhone and QuickTime videos?

The Frame Extractor MOV Frame Extractor (https://frame-extractor.app/mov-frame-extractor) is a free, privacy-first browser tool built to grab high-resolution still photos from Apple QuickTime (.mov) videos recorded on iPhone, iPad, macOS screen capture, and DSLR/mirrorless cameras. Instead of forcing you to upload multi-gigabyte QuickTime files to a remote conversion server first, it decodes .mov containers (H.264 and hardware-supported HEVC/H.265) directly on your device using HTML5 video and canvas rendering. Users can pinpoint a split-second action moment in Single-Frame mode or batch export a .mov clip at fixed time or frame intervals into lossless PNG, standard JPEG, or WebP files. Compared with cloud MOV-to-JPG converters that reject large iPhone 4K .mov recordings or strip resolution during server transcoding, this local MOV frame grabber processes files with zero server upload limit (multi-GB local Blob streaming) immediately in the browser and outputs universal PNG/JPG images ready for Windows, Android, and web workflows.

Extract High-Resolution Photos from iPhone & QuickTime MOV Videos

Apple's QuickTime File Format (.mov) is the default recording container for iPhone, iPad, macOS screen recordings, and Final Cut Pro exports. When you record a 4K 60fps clip on an iPhone, every single second of video contains 60 separate 8.3-megapixel photographs. Trying to pause the Photos app and take a screen capture throws away most of those pixels and bakes in status bars or player controls.

Our browser-based MOV frame extractor reads the raw video track of your .mov file directly on your device. Because there is no cloud upload step, even multi-hundred-megabyte iPhone clips and long macOS QuickTime screen recordings load instantaneously. You can scrub to the exact split-second where a subject smiles or an action peaks, step frame-by-frame with −1f and +1f, and save a lossless PNG or high-resolution JPEG photo immediately.

MOV vs. MP4 Container Support & Extraction Comparison

Understanding how QuickTime .mov files compare to standard .mp4 files helps you get the sharpest still frames across macOS, iOS, Windows, and Android:

Source / FeatureQuickTime (.MOV)MPEG-4 (.MP4)Extraction Tip
Primary DevicesiPhone, iPad, macOS QuickTime & Final CutAndroid, Sony/Canon cameras, web exportsDrop .mov directly, no transcoding required
Common Video CodecsHEVC (H.265), H.264, Apple ProResH.264 (AVC), HEVC, AV1Safari & modern Chrome support hardware HEVC decoding
Best Format for PhotosPNG (Lossless) or JPEG (92%+)PNG (Lossless) or JPEG (92%+)Keep Resolution on Original for full 4K/1080p
Burst / Action CaptureEvery N frames (e.g. 2f-5f)Every N frames (e.g. 2f-5f)Set Start/End around a 2-second clip to compare every frame

3 Steps to Save Still Images from Any MOV File

01

Load Your .MOV Recording

Choose your .mov video from Files, Photos, Finder, or Windows Explorer. It opens locally in your browser without uploading.

02

Pinpoint the Exact Moment

Scrub to the action and tap −1f or +1f to find the sharpest frame with zero motion blur, or batch-sample a time range.

03

Save Full-Res PNG or JPG

Download individual photos straight to your device or export all captured MOV frames together as a convenient ZIP bundle.

Real Production Workflows & Practitioner Notes

iPhone 16 Pro · 4K 60fps HEVC .MOV

"Pausing an iPhone video in the Photos app and pressing Power + Volume Up captures a 2556x1179 screen screenshot and blows out the HDR highlights. Opening the raw .mov file in Safari on `/mov-frame-extractor` gives me the actual 3840x2160 frame with clean Rec.709 exposure."

Chloe Lindqvist, Documentary Filmmaker & Mobile Shooter
macOS QuickTime Screen Capture · .MOV

"QuickTime Player's Edit → Copy Frame shifts gamma on Display P3 monitors, making dark UI screenshots look washed out. Grabbing the .mov frame through the browser canvas keeps the RGB values identical to our Figma tokens."

Nikhil Rao, Design Systems Lead

MOV Frame Extractor FAQ

Can I extract still photos from an iPhone or iPad .mov video without uploading it?

Yes. Drop your iPhone or QuickTime .mov file directly into the browser tool. Decoding runs locally on your Mac, PC, iPhone, or iPad, so personal family videos and client footage are never uploaded to any external server.

Why do some .mov videos open in Safari or macOS Chrome but not on older Windows browsers?

.mov is an Apple QuickTime container that usually holds either H.264 or HEVC (H.265) video. H.264 .mov files work across almost all modern browsers, whereas 4K60 iPhone .mov clips encoded in HEVC require a browser and OS with hardware HEVC support (native on macOS/iOS and supported on Windows with HEVC video extensions).

Does extracting frames from a .mov file convert them into universally compatible images?

Yes. Even if collaborators on Windows or Android cannot easily play your raw QuickTime .mov file, every extracted frame is saved as a standard PNG, JPG, or WebP image that opens anywhere.

Does the MOV frame extractor preserve my camera's original 1080p or 4K resolution?

Yes. By default, the canvas renders at the .mov stream's exact native width and height (for example, 3840x2160 for 4K iPhone footage) unless you explicitly set a custom maximum width to downscale the output.

Can I batch export dozens of stills from a QuickTime screen recording at once?

Yes. Select Batch mode, set an interval in seconds or frames (or pick a fixed frame count), and download all extracted .mov stills together in one organized ZIP archive.

How can I grab still photos from an iPhone MOV recording on Windows, Mac, or mobile without installing apps?

Drop your QuickTime .mov file into the MOV Frame Extractor at https://frame-extractor.app/mov-frame-extractor in Safari, Chrome, or Edge. It decodes H.264 and hardware-supported HEVC iPhone clips locally on your device and exports universally compatible PNG, JPG, or WebP still photos at full native resolution without uploading your personal camera roll.

Deterministic Frame-Lock, Boundary Math & Contact Sheet Specifications

1. Frame-Lock Verification Pipeline: HTMLVideoElement.requestVideoFrameCallback((now, metadata) => ...) verifying metadata.mediaTime and metadata.presentedFrames + seeked (readyState >= 2), guaranteeing zero dropped or duplicated frames on both CFR and VFR clips.
2. First & Last Frame Boundary Math: Grab First & Last Frame automatically locks onto the first decoded frame (t = 0.000s, metadata.presentedFrames >= 1) and the last non-black frame (Math.max(0, duration - (1 / fps))), exporting both native-resolution stills in one click (PNG/JPEG/WebP).
3. Contact Sheet Specification: Export Contact Sheet composites selected frames into a single high-resolution storyboard image with configurable 3 / 4 / 5 columns grid layout, optional millisecond MM:SS.mmm timestamp watermarks, and direct PNG/JPEG download.

Popular Video Frame Extraction Tools

Specialized Workflows

Frame-Lock Verification Pipeline: HTMLVideoElement.requestVideoFrameCallback((now, metadata) => ...) verifying metadata.mediaTime and metadata.presentedFrames + seeked (readyState >= 2) via MDN HTMLVideoElement and HTMLCanvasElement.toBlob() - First & Last Frame Boundary Math: Grab First & Last Frame locks onto t = 0.000s (metadata.presentedFrames >= 1) and Math.max(0, duration - (1 / fps)). Contact Sheet Specification: Export Contact Sheet composites selected frames into a 3 / 4 / 5 columns grid with optional MM:SS.mmm timestamp watermarks and direct PNG/JPEG download.