Extract a Video's First & Last Frame

Pick a video — the first and last frame are grabbed in one pass and joined into a single before/after image, side by side or stacked. Nothing is uploaded.

Try:
First + last frame

First frame vs last frame, in one image

Load a video and this tool grabs its very first frame and its very last frame and joins them into a single before/after image — placed side by side or stacked top over bottom. Everything runs locally in your browser with ffmpeg (WebAssembly); the video is never uploaded.

Both frames come from one decode pass and no timestamp is needed: the graph splits the stream, keeps frame 0 on one branch, and reverses the other branch so its frame 0 is the original last frame — then glues the two together. Because the page renders one output file, you get the pair as this single stitched image rather than two separate downloads.

Choose the layout:

Then pick PNG (lossless, crisp for UI recordings and text) or JPG (smaller, better for photographic footage). The source dimensions are preserved, so a 1280×720 clip stitches to 2560×720 side by side, or 1280×1440 stacked.

Worked example

Upload a 64×64 test clip whose first frame is red and last frame is blue, pick Side by side and PNG. The tool returns a 128×64 image — solid red on the left, solid blue on the right — showing the clip's start-vs-end change at a glance. Right-click to save it, or use the Download link.

Handy for

Limits and good to know

FAQ

Can I download the first and last frame as two separate images?

Not from this page — it produces one stitched image with both frames joined (side by side or stacked), which the browser can render and download as a single file. To crop the halves apart afterward, or to grab one exact frame at a chosen timestamp on its own, use an image cropper or the Extract a Video Frame tool instead.

What's the difference between the horizontal and vertical layout?

Only how the two frames are arranged. Horizontal places the first frame left and the last frame right (the output is twice as wide as the source). Vertical stacks the first frame on top and the last on the bottom (twice as tall). The frames themselves are identical either way — pick whichever fits your clip's shape.

Do I need to know the video's length or set a timestamp?

No. The tool always takes frame 0 (the first frame) and the final frame, whatever the duration is. It finds the last frame by reversing the stream, so you never enter a time — just upload and run.

Which format should I choose, PNG or JPG?

PNG is lossless and stays crisp on screen recordings, UI, and text — pick it when you want an exact copy of the frames. JPG is smaller and fine for photographic or camera footage where a little compression won't show. Both keep the source dimensions.

Is my video uploaded anywhere?

No. The video is decoded and the frames are stitched entirely in your browser with WebAssembly ffmpeg. Nothing leaves your device, and there's no account or upload step.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool video-first-last-frame-extractor 'url=https://example.com/input' 'layout=horizontal' 'format=png'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/video-first-last-frame-extractor/?url=https://example.com/input&layout=horizontal&format=png

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.