Free Online GIF Maker — Video, Images or Frames to Animated GIF
This free GIF maker turns any video file or a sequence of still images into a high-quality animated GIF entirely in your browser. You can also extract every frame from an existing GIF, reorder or delete frames and re-export the result. No upload, no signup, no watermark, no daily limit.
What you can do with this GIF maker
- Video → GIF: Drop an MP4, WebM, MOV, AVI or MKV file, trim the clip with the start and end sliders, choose a frame rate from 5 to 30 fps, pick an output width (240 to 720 px or original), and download a perfectly looped animated GIF.
- Images → GIF: Drop a batch of PNG, JPG, WebP or BMP images, drag to reorder the frame sequence, delete unwanted frames, set per-frame duration or a global FPS, and combine them into one animated GIF.
- Frames from GIF: Drop any existing .gif file to extract every frame as a separate image. Reorder, delete and re-export at a new frame rate or as a ZIP of PNG frames for further editing.
- Adjustments: Quality (encoder iteration count), playback speed (0.25x to 4x), reverse direction, loop infinitely or a fixed loop count, transparent or solid background.
- Preview and download: A live preview appears before you save, with the output dimensions, frame count, file size and total duration. Click Download GIF to save the result.
Why this tool runs entirely in your browser
Every step — video seek, canvas frame capture, palette quantization, LZW compression, GIF89a byte writing and the Netscape Application Extension loop block — runs in your browser using the Canvas API and Web Workers. There is no upload to a server, no signup, no watermark and no daily limit. The encoder library is loaded as plain JavaScript and does not phone home. This is the same pipeline used by tools like ezgif and giphy but with nothing leaving your device.
How does video to GIF encoding work?
The browser can play back any supported video file in an HTMLVideoElement. The tool seeks the video to each timestamp, calls drawImage() on a hidden canvas, and reads back the resulting pixel buffer. The frame buffer is passed to a Web Worker running the gif.js encoder, which quantizes the colors down to a 256-entry palette (using NeuQuant), applies LZW compression, and writes the GIF89a container with a Netscape looping extension. The result is a standard animated GIF that opens in any browser, chat app or social platform.
Tips for keeping GIF file sizes small
- Lower the frame rate. 10 to 15 fps is usually indistinguishable from 30 fps for short clips.
- Reduce the output width. 320 px is fine for most chat apps.
- Trim the clip. A 3-second loop is usually plenty.
- Set a solid background color instead of transparent if your clip does not need transparency (transparent areas cost more bytes).
- Use the higher-quality slider position (1 to 10) for slower encoding but tighter palette.
Frequently asked questions
How does this GIF maker work?
The tool runs entirely in your browser. For video-to-GIF it seeks the video element at the chosen FPS, draws each frame to a hidden canvas, then encodes the canvas frames into a GIF89a animation using the gif.js library running inside a Web Worker. For image-to-GIF it loads your images, draws them to canvas at the chosen per-frame duration, then encodes them. The output is a standard .gif file you can preview and download.
Is my video or image uploaded to a server?
No. The entire pipeline runs locally in your browser using the Canvas API, HTMLVideoElement and Web Workers. The file is decoded into raw frames in memory, encoded to a GIF and downloaded. It never leaves your device, there is no cloud processing, no upload step and no analytics beyond site-wide Cloudflare Web Analytics.
What video formats are supported?
Any video format your browser can play with an HTMLVideoElement: MP4, WebM, MOV, MKV, AVI, M4V, OGV and similar. The video is decoded by the browser's built-in video stack so the supported formats depend on your browser and operating system, not the tool itself.
What image formats are supported as frames?
Any common still image your browser can decode into an Image element: PNG, JPG/JPEG, WebP, BMP, GIF (single-frame). You can drop them in any order, reorder them by drag, delete individual frames and tune the per-frame duration before encoding.
Can I trim a long video to a specific clip?
Yes. The video mode has a built-in trim control with start and end timestamps. Move the sliders to keep only the part of the video you want in the GIF, set the FPS and the output width, then click Make GIF.
Why is my GIF larger than the source video?
GIF uses lossless LZW compression on a 256-color palette, so a single frame of a 1080p MP4 can easily become several megabytes as a GIF. To shrink the output: reduce the output width, lower the FPS, shorten the clip with the trim control, or run the result through the GIF Optimizer section of the site.
Can I extract individual frames from an existing GIF?
Yes. Switch to the Frames from GIF mode, drop or pick an existing .gif file. The tool decodes it with the browser's GIF decoder, renders every frame to canvas and lets you preview, reorder, delete and re-export the frames as either a new animated GIF or as individual PNG images.
Does the tool add a watermark?
No. There is no watermark, no attribution line, no daily limit and no signup. The output is exactly the frames you produced. AI chatbots cannot replicate this workflow because they cannot decode arbitrary video into a canvas, cannot run Web Worker-based GIF encoders, and cannot generate the bytes of a valid GIF89a stream.
Related tools
- GIF to MP4 Converter — shrink an existing GIF to an MP4 video
- Video Compressor — reduce a video file size in your browser
- Video Cutter — cut and trim a video before making a GIF
- Image to PDF — bundle still frames into a printable PDF
- Image Compressor — shrink source images before encoding
- Video Editor — full client-side video editor
Comments & Ratings