Extract Video Frames and Make a GIF Online Free

Load a video and browse it as a filmstrip. Save any frame as a full resolution still, or mark a start and an end frame to export that slice as a looping animated GIF. FFmpeg compiled to WebAssembly does all of the work in your browser, so the video is never uploaded.

Drop a video here or click to choose

MP4, MOV, WebM, MKV, AVI and most other formats

The video never leaves your device

Frames

Frames appear here once a video is loaded.

Load a video to see its frames.

Exported at the original frame size.
Lower values encode faster.
Height follows the video aspect ratio.
Palette size used for the GIF.

Video decoding and GIF encoding run on ffmpeg.wasm, a WebAssembly build of FFmpeg. The wrapper is MIT licensed and the self-hosted core build is GPL-2.0-or-later; its source is published by the ffmpeg.wasm project. 73hi is not affiliated with the FFmpeg project.

Three simple steps

How to Turn Part of a Video Into a GIF

No upload queue, no command line, and no software to install.

1

Load the video

Choose a file or drop it on the upload area. The first visit downloads the WebAssembly video engine, about 31 MB, once.

2

Browse the filmstrip

Frames line up horizontally with their timestamps. Click one frame to select it.

3

Save a still or a GIF

Save frame exports that moment at full resolution. Click a later frame to mark a range, then Create GIF.

Real FFmpeg, inside the browser

Frame Accurate Still and a Proper GIF Palette

The same filters a video editor would use, running in WebAssembly.

Filmstrip browsing

See evenly spaced frames or let FFmpeg pick the scene changes, each labelled with its timestamp.

Full resolution stills

The strip is only a preview. Saving a frame re-reads that timestamp and writes the video's original pixels.

Palette based GIFs

Each GIF gets a palette generated from its own frames, which keeps gradients and skin tones far cleaner than a fixed palette.

Private by design

Decoding and encoding happen in a Web Worker on your device. The video is never uploaded to a server.

Formats and limits

What Goes In and What Comes Out

Input support follows the FFmpeg build that runs in your browser.

Direction Format Notes
Input MP4, MOV, WebM, MKV, AVI Most common containers decode directly; exotic codecs may need a conversion first
Still output PNG, JPEG Exported at the original frame resolution
Animation output GIF Looping, palette optimised, 240 to 640 pixels wide

Performance: the single threaded WebAssembly build is much slower than desktop FFmpeg. Short clips of a few seconds at 10 fps and 320 pixels wide encode in seconds, while long or high resolution ranges can take a minute or more. Keep the browser tab open while the progress bar moves.

Questions and answers

Video Frame and GIF FAQ

Is my video uploaded to a server?

No. The video is written into the memory file system of FFmpeg compiled to WebAssembly, which runs in a Web Worker in your browser. Decoding, frame extraction and GIF encoding all happen on your device.

Why is the first load so large?

The tool downloads the FFmpeg WebAssembly core, about 31 MB, the first time you open the page. Browsers cache it, so later visits start immediately. Nothing else is downloaded while you work.

Which video formats can I load?

Anything the FFmpeg build can decode, which covers MP4, MOV, WebM, MKV, AVI and most other common containers. Support for a specific codec still depends on the build, so if a file fails, try converting it to MP4 with H.264 first.

Why is the GIF encoding slow?

The single threaded WebAssembly build is several times slower than FFmpeg on a desktop. Keep clips short, use 8 to 12 frames per second and a width of 320 to 480 pixels for quick results.

How do I pick a range instead of a single frame?

Click the first frame you want, then click a later frame. The two marks define the range, the frames between them are highlighted, and the GIF is encoded from the start timestamp to the end timestamp.

Can I save a frame at the original resolution?

Yes. The filmstrip only shows small previews, but Save frame re-reads that exact timestamp from the video and exports it at full resolution as a PNG or a JPEG.

Does the GIF loop?

Yes. The GIF is written with looping enabled, so it repeats continuously in browsers and chat apps.