Skip to content

Make a GIF From a Video on Windows Free

Make a high-quality GIF from a video free on Windows using WSL and FFmpeg. Use a palette for clean colors, control size and frame rate, all offline with no uploads.

MGMCSA Guru Team June 25, 2026 3 min read
A WSL terminal converting a video clip into an animated GIF with FFmpeg on Windows

Turning a short clip into a GIF sounds trivial until you try it and get a grainy, washed-out mess. That’s not your fault — GIF only allows 256 colors per frame, and a naive conversion picks a bad palette. The fix is to let FFmpeg study the clip first and build the best palette for it. The online GIF makers that do this for you also want your video uploaded and often slap on a watermark.

FFmpeg in WSL makes clean GIFs locally, for free, with full control over size and frame rate. Nothing gets uploaded.

No WSL yet? See the WSL install guide.

Install FFmpeg

sudo apt update && sudo apt install -y ffmpeg

Confirm:

ffmpeg -version

The quick (lower quality) way

A one-liner works, but expect a generic palette and a chunky file:

ffmpeg -i input.mp4 -vf "fps=12,scale=480:-1" output.gif
  • fps=12 drops the frame rate to keep the size down.
  • scale=480:-1 sets width to 480px and height automatically.

This is fine for a rough GIF. For anything you’ll actually share, use the palette method.

The right way: build a palette first

This is a two-step process that gives GIFs their clean colors. First, generate a palette tailored to the clip:

ffmpeg -i input.mp4 -vf "fps=12,scale=480:-1,palettegen" palette.png

Then apply that palette while creating the GIF:

ffmpeg -i input.mp4 -i palette.png -lavfi "fps=12,scale=480:-1,paletteuse" output.gif

The difference is obvious — smoother gradients, accurate colors, far less banding. The two fps and scale values must match between the steps.

Make a GIF from just part of the video

Most GIFs are a few seconds. Use -ss (start time) and -t (duration) to grab a segment. Generate the palette and the GIF from the same window:

ffmpeg -ss 5 -t 3 -i input.mp4 -vf "fps=12,scale=480:-1,palettegen" palette.png
ffmpeg -ss 5 -t 3 -i input.mp4 -i palette.png -lavfi "fps=12,scale=480:-1,paletteuse" output.gif

This takes a 3-second clip starting at the 5-second mark.

Control the file size

GIF gets big fast. The three levers:

Keeping GIFs small

fps=10-15 Lower frame rate — biggest, easiest saving
scale=480:-1 Smaller width — 320-480px is plenty
-t 2-4 Keep it short
palettegen + paletteuse Better quality at the same size

A 480px-wide, 12 fps, 3-second GIF with a palette usually looks great and stays a reasonable size. Push resolution or length up and the file balloons.

If you want even higher quality: gifski

gifski is built specifically for high-quality GIFs. It works from frames or video and can look superb, though files tend to be larger:

sudo apt install -y gifski

FFmpeg’s palette method handles most needs and is built in, so try it first. Reach for gifski when visual quality matters more than file size.

Wrapping up

Making a clean GIF on Windows is the two-pass palette method: palettegen to build a palette for the clip, then paletteuse to apply it, with matching fps and scale filters. Use -ss and -t to grab just the segment you want, and keep the resolution, frame rate, and length down to control size.

It’s free, runs in WSL, and never uploads your clip. The same FFmpeg install also trims video without re-encoding and compresses video.

Frequently asked questions

Why do my GIFs look grainy or have ugly colors?

GIF is limited to 256 colors per frame. A direct conversion picks a generic palette and looks blocky. Generating a palette from the clip first, then applying it, gives FFmpeg the best 256 colors for that specific video and produces a much cleaner result.

Why are my GIFs so large?

GIF is an inefficient format, so file size climbs fast with resolution, frame rate, and length. Keep GIFs short, scale them down (for example to 480px wide), and lower the frame rate to around 12-15 fps to keep the size reasonable.

How do I make a GIF from just part of a video?

Add -ss for the start time and -t for the duration before processing. For example, starting at 5 seconds for a 3-second clip captures just that segment, which is the usual way to make a short reaction GIF.

Is my video uploaded anywhere?

No. FFmpeg runs locally in WSL, so the file stays on your machine. That's the reason to make GIFs offline rather than on a website, especially for clips you don't want to share publicly.

Should I use gifski instead of FFmpeg?

gifski specializes in high-quality GIFs and can look better for some clips, at the cost of larger files. FFmpeg's palette method is excellent and built in. Try FFmpeg first; reach for gifski if you want maximum visual quality.

Sources & further reading

Official vendor documentation referenced while writing this guide.

MG

MCSA Guru Team

IT & Systems Administration

We are working IT pros and system administrators who spend our days in Windows Server, Microsoft 365, and the wider Microsoft stack. MCSA Guru is where we write down the fixes and walkthroughs we wish we had found the first time.

MCSA Guru provides independent, educational IT guidance. Microsoft, Windows, Windows Server, Microsoft 365, Exchange, and Microsoft Teams are trademarks of Microsoft Corporation; Docker is a trademark of Docker, Inc. MCSA Guru is not affiliated with or endorsed by Microsoft or Docker. Always test changes in a safe environment before applying them in production.

Related guides

Fixing something right now?

Jump straight into the guide library or search for the exact error or task you are dealing with.