Free Online First & Last Frame Extractor for Video
Capture the exact first frame (00:00.000) and non-blank final frame of any MP4, MOV, WebM, MKV, or AVI clip in one click, purpose-built for Runway Gen-3, Kling AI, Luma, Veo, and ComfyUI continuity.
拖入影片,或 選擇檔案
MP4 · MOV (ProRes/HEVC) · WebM · MKV · AVI · M4V - 零伺服器上傳限制
Exact PTS Frame-Lock (WebCodecs / requestVideoFrameCallback) · Zero Skipped Frames across CFR & VFR · No server upload (GPU/RAM-bound)
Workbench Controls & Pro Modes Preview (Single Frame · Batch ZIP · Contact Sheet · FFmpeg CLI)Specs▾
ffmpeg -ss 00:00:00.000 -i "input.mp4" -frames:v 1 -q:v 1 frame_0001.pngHTMLVideoElement.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)Specs▾
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 AuditSpecs▾
Verified Engineering Bounds: Browser WebCodecs / rVFC vs. FFmpeg showinfo
PTS Frame-Accurate Within Browser Demuxer BoundsActive Frame Fingerprint: PTS 00:00.000 · SMPTE 00:00:00:00 · Frame #0 · Checksum sha256:e3b0c442
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 Workload | Browser rVFC / WebCodecs Result | FFmpeg / 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 RemuxSpecs▾
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.
ffmpeg -i "input.mkv" -c copy -movflags +faststart "output.mp4"Wraps MKV / AVI / HEVC into browser-native MP4 in <1s with 100% identical bitstream hashesWhat is a first and last frame extractor and how does it prevent the end-of-file black-frame bug?
The Frame Extractor First and Last Frame Extractor (https://frame-extractor.app/first-last-frame-extractor) is a specialized browser utility that captures the exact initial frame (00:00.000) and the final decoded visual frame of a video in a single click. Standard players and naive extractors suffer from the End-of-File (EOF) black-frame bug when seeking to video.duration. Powered by Frame-Exact Hardware-Accelerated Decoding (WebCodecs / requestVideoFrameCallback + Deterministic PTS Frame-Lock, Zero Frame Drops across CFR & VFR videos), our Grab First & Last Frame action calculates duration - max(1/fps, 0.04s) and verifies buffer readiness across MP4, MOV (QuickTime/iPhone), WebM, MKV, AVI, and M4V containers (H.264/AVC, H.265/HEVC, VP9, AV1, and Apple ProRes) with No Server Upload Size Limit (Zero-copy local Blob streaming supports multi-gigabyte 4K/8K raw footage).
Continuous Video Extension & Loop Continuity for Runway, Kling AI, Luma & Veo
Generative AI video models, including Runway Gen-3 Alpha, Kling AI, Luma Dream Machine, Google Veo, Pika, and ComfyUI Wan/SVD workflows, rely on exact start and end anchor images to extend clips, chain multi-shot scenes, or synthesize infinite continuous loops. Even a 1-frame mismatch or slight color-space shift between the terminal frame of Shot A and the initial prompt image of Shot B creates a visible jump cut. By locking directly onto the decoded HTMLVideoElement presentation timestamp via requestVideoFrameCallback() and exporting uncompressed PNGs via HTMLCanvasElement.toBlob(), both anchor frames retain 100% pixel and gamma consistency.
Need broader dataset sampling for LoRA training or 3D Gaussian Splatting? Explore our AI Video Frame Extractor, fine-tune your end point with the Frame-by-Frame Video Viewer, or composite a visual continuity sheet with the Video Contact Sheet Generator.
AI Video Continuity & Keyframe Anchor Workflows
| AI / Editing Workflow | Required Frame(s) | Recommended Format | Why Exact PTS Lock Matters |
|---|---|---|---|
| Clip Chaining (Shot A → Shot B Extension) | Last Frame (duration - 1/fps) | PNG (Lossless 1:1) | Avoids EOF black frame and eliminates seam jump between clips |
| Continuous Infinite Video Loop | First (00:00.000) & Last Frame | PNG (Lossless 1:1) | Pass Last Frame as Start and First Frame as End to close the loop |
| Keyframe-Guided Interpolation (Kling / Luma) | Start Anchor + End Anchor | PNG or WebP (100%) | Preserves exact subject geometry and Rec.709 color balance |
| FFmpeg CLI Automation Reference | Live Equivalent CLI Bar | PNG (-q:v 1) | Copy exact timestamped FFmpeg command directly from workbench |
How to Extract the First and Last Frame in One Click
Drop Your Source Video
Load any MP4, MOV, WebM, MKV, AVI, or M4V clip locally in your browser with zero upload wait time.
Click Grab First & Last Frame
Click the highlighted Grab First & Last Frame button in the viewfinder bar to lock onto 00:00.000 and the final visual frame.
Download Both Stills or ZIP
Save each native-resolution PNG individually or click Download Selected (ZIP) to grab both anchors together.
Real Production Workflows & Practitioner Notes
"Before using `/first-last-frame-extractor`, dragging a player playhead to the end of a 5-second AI clip gave me a black frame half the time because of EOF packet timing. The Grab First and Last Frame button calculates `duration - 1/fps` automatically and gives me a clean 00:04.958 anchor PNG."
"To make an infinite background loop for our Spotify Canvas visuals, I grab frame 0.000s as PNG and feed it back into Luma as the End Frame target. Having both boundary frames extracted in one click keeps the aspect ratio and color profile locked."
First and Last Frame Extractor FAQ
Why do I get a black or empty frame when manually seeking to the end of a video?
Most video containers store an End-of-Stream (EOS) terminator at the exact video.duration timestamp. Seeking directly to duration often lands on an empty buffer. Our Grab First & Last Frame action uses a duration - max(1/fps, 0.04s) seek lock with Deterministic PTS Frame-Lock so the final capture always lands on the last true visual frame.
How does Grab First & Last Frame work for Runway Gen-3, Kling AI, Luma Dream Machine, and Veo?
With one click on Grab First & Last Frame, the tool seeks to 00:00.000 (First Frame) and the exact final frame (Last Frame), captures both at 100% native resolution, selects both in the gallery, and lets you download them individually or as a 2-frame ZIP ready for AI video extension, loop creation, or start/end keyframe prompts.
Which video containers and codecs are supported?
Frame Extractor supports the full container and codec matrix: MP4, MOV (QuickTime/iPhone), WebM, MKV, AVI, and M4V across H.264/AVC, H.265/HEVC, VP9, AV1, and Apple ProRes.
Does this tool preserve 1080p and 4K native resolution for AI video prompts?
Yes. Both the first frame and last frame are rendered at 1:1 intrinsic source pixel dimensions (such as 1920x1080 or 3840x2160) in lossless PNG, JPEG, or WebP so AI video generators experience zero resolution degradation or seam flicker.
Is there any file size limit or server upload queue?
No. Frame Extractor operates with No Server Upload Size Limit (Zero-copy local Blob streaming supports multi-gigabyte 4K/8K raw footage). Everything runs locally inside your browser.
Can I step backward 1 or 2 frames if the final frame of my clip has a fade-out?
Yes. After clicking Grab First & Last Frame, the playhead remains positioned at the end of your video. You can click -1 Frame (or press the comma key) to step back before a fade-to-black and click Grab Current Frame.
Deterministic Frame-Lock, Boundary Math & Contact Sheet Specifications
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.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).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.熱門影片取幀與截圖工具
專屬格式與批量抽幀工作流MP4 影片取幀工具
在瀏覽器本地從 .mp4 影片無損提取高畫質靜態畫面或帶時間戳記的連續圖序列。
MOV 影片取幀工具
免上傳雲端,直接從 iPhone、iPad 與 macOS QuickTime (.mov) 錄影擷取原畫質照片。
4K 影片高畫質取幀工具
從空拍機、運動相機與無反相機的 4K 60fps 影片中提取原生 830 萬畫素超高清靜態照片。
Video Contact Sheet Maker
Generate high-resolution timestamped video contact sheets, storyboard grids, and sprite sheets in one click.
Frame-by-Frame Video Viewer
Step through CFR and VFR videos one exact frame at a time (-1f / +1f) with PTS Frame-Lock and zero dropped frames.
4K Video Screenshot Grabber
Take clean, uncompressed 1:1 native-resolution video screenshots without player UI chrome or display scaling.
First & Last Frame Extractor
Extract the exact 0.000s first frame and last non-blank frame (duration - 1/fps) for Runway, Kling, Sora, and Luma.
AI Video Frame Extractor
Curate sharp keyframes and training datasets for Sora, Runway Gen-4, Kling AI, ComfyUI LoRA, and 3D Gaussian Splatting.
影片轉 PNG 無損擷取
擷取像素級精準的無壓縮 PNG 靜態影格,最適合 YouTube 縮圖、UI 文件截圖與 VFX 合成。
影片轉 JPG 轉換器
將 MP4、MOV 與 WebM 影片轉換為檔案輕巧、相容性最高的 JPEG 圖片序列並支援品質調節。
按秒批量擷取影片影格
自動按每 0.25 秒、1 秒、5 秒或每 N 幀取樣抽幀,並一鍵打包為按時間編號的 ZIP 壓縮檔。
採用 W3C 與 WHATWG 標準之硬體加速 MDN HTMLVideoElement 解碼與 1:1 像素級 HTMLCanvasElement.toBlob() 緩衝區封裝技術 - 0 位元組上傳雲端,100% 離線隱私安全。