Video to GIF Converter
A video-to-GIF converter takes a short segment of a video file and produces an animated GIF — a widely supported looping image format ideal for chat reactions, documentation animations, README demos, and social-media clips. The ZTools Video to GIF has two modes. On this device, it plays the chosen segment in your browser, captures the frames on a canvas and encodes the GIF with gif.js: 8 to 30 fps, up to 800 px wide and 300 frames, and nothing is uploaded. On our server, ffmpeg builds a colour palette for your clip in two passes, which gives cleaner colours and finishes faster: up to 15 seconds, 5 to 20 fps and 640 px wide. The server mode needs a free Google sign-in and deletes your video right after processing.
Use cases
README product demos
GitHub READMEs autoplay GIFs but not videos. A 5-10 second GIF demo of a CLI tool or UI flow shows what the project does without making readers click "play".
Bug reports and walkthroughs
Issue tracker comments support GIF embedding directly. A 6-second animation of the bug captures the issue better than a static screenshot or text description.
Social media reactions
Slack, Discord, and chat apps render GIFs inline. Trim a movie clip or recorded reaction into a 3-5 second loop for instant communication.
Tutorial micro-demos
Show a single UI interaction (a 2-second click + animation) inline in documentation. Less heavy than embedded video; works in environments where video is blocked.
How it works
- Add a video — MP4, WebM, MOV and more. The server mode takes files up to 100 MB.
- Choose where to make the GIF — "On this device" captures the frames in your browser with no upload. "On our server" uses ffmpeg with a two-pass colour palette and needs a free Google sign-in.
- Set the segment — Pick where the clip starts and how long it runs. Keep clips under 10 seconds for a reasonable file size; the server mode takes up to 15 seconds.
- Configure output — Frame rate (lower = smaller file, choppier; 10-15 fps is a sensible default) and width (a smaller width gives a much smaller file).
- Download — Save the GIF, check its size, and lower the frame rate or width if it is too large.
Examples
Input: 5-second 480p MP4 → 12 fps GIF at 480px wide
Output: GIF ~1-3 MB; suitable for Slack and most issue trackers.
Input: 10-second screen recording at 30fps → 480p 15fps GIF
Output: ~3-6 MB GIF; readable for tutorials in GitHub READMEs.
Input: Movie clip 4 seconds → 320px wide 12 fps
Output: ~500 KB - 1.5 MB; chat-app-friendly.
Frequently asked questions
Why does my GIF look terrible?
GIFs use a 256-colour palette per frame, which struggles with photographic content (gradients, skin tones). The server mode builds a palette for your clip, which helps. Otherwise reduce dimensions, drop the frame rate, or use WebM or MP4 for high-quality animation.
Why are GIFs so large?
GIF lacks modern compression (no inter-frame prediction). 5 seconds of HD video that would be 1 MB as MP4 might be 10 MB as GIF. Keep clips short, dimensions small, FPS modest.
Should I use GIF or WebM/MP4?
GIF: universal autoplay, perfect for README and chat. WebM/MP4: 10x smaller, better quality, but requires player support. GitHub now supports WebM in issues; GIF still safer for compatibility.
How long can the GIF be?
On this device, up to 300 frames (for example, 20 seconds at 15 fps); on our server, up to 15 seconds. Longer GIFs balloon in size and lose viewer attention; most great GIFs are under 10 seconds.
Is the video uploaded?
Only in the "On our server" mode, which sends it over HTTPS to our own processing server; the server deletes the video and the GIF right after processing. The "On this device" mode never uploads anything.
Can I add captions or text overlay?
Not directly — render the GIF first, then overlay text in a separate tool. Or pre-edit the source video with text before conversion.
Tips
- Crop to the action area before converting; smaller dimensions = drastically smaller files.
- Aim for 12-15 fps for UI demos; 24 fps for camera footage. Higher only when motion is fast and necessary.
- For README, target under 5 MB; for chat, under 2 MB.
- Loop the action explicitly — a clean loop reads better than an abrupt cut.
- Test in the destination platform — chat apps and GitHub render GIFs differently.
Try it now
The full Video to GIF Converter runs at https://ztools.zaions.com/video-to-gif. It can process your file on the ZTools server: the file is uploaded temporarily and deleted right after processing, and that mode needs a Google sign-in.
Last updated: 2026-09-11 · Author: Ahsan Mahmood · Edit this page on GitHub