Video to GIF Converter

Turn a short video segment into an animated GIF. Choose the clip on the timeline, pick a quality preset, and download a clean GIF for posts, messages, docs, or previews.

Convert video to GIF

Choose a file
or drag and drop

Sign in to run this tool — 100 free credits on signup.

FFmpeg flags used by this tool

Quick reference for what each parameter actually does.

-ss <start>
Input seek. Placed before -i so ffmpeg fast-forwards to the keyframe before the timestamp — orders of magnitude faster than the same flag after -i.
-t <duration>
Stop after this many seconds. Combined with -ss this extracts only the clip you marked.
fps=
Frame rate filter. 10-15 fps is plenty for most clips — GIF size grows linearly with frames.
scale=W:-1:flags=lanczos
Resize to W pixels wide, height auto. Lanczos is the highest-quality scaler for downsizing.
split[s0][s1]
Splits the stream into two identical copies so the same frames feed both palettegen and paletteuse.
palettegen=max_colors=N
Analyzes every frame and builds an optimal N-color palette for the clip. The single biggest quality lever for GIF.
paletteuse=dither=bayer
Applies the palette with bayer dithering — small ordered pattern that masks banding without ballooning file size like floyd_steinberg can.

How it works

  1. 01

    Upload your video

    Drop a file or paste a URL. The video plays inline so you can scrub to the part you want.

  2. 02

    Mark the clip

    Drag the highlighted window over the timeline to pick the segment, and set the duration below — up to 60 s.

  3. 03

    Pick a preset

    Standard (480 px / 10 fps) is good for most things. Smooth for action, Small for chat / DM use.

  4. 04

    Create and download

    We optimize the GIF colors for the selected clip so the result stays clean and easy to share.

FAQ

Why does this look cleaner than many GIF converters?

We build an optimized color palette for the selected clip before creating the final GIF. That helps reduce muddy colors and banding, especially on gradients and motion.

Why is there a 60-second cap?

GIF doesn't compress like modern video formats — a 30-second 480p GIF can easily hit 20+ MB. Past 60 s the files become unusable for most channels (Slack, Twitter, GitHub) so we cap it. For longer animations use WebM with the Convert tool.

How do I get a smaller file?

Lower fps (8 fps is fine for talking heads), lower width (320 px for chat), or drop the palette to 128 colors. Or use the Small preset which combines all three.

What's the difference between the three presets?

Smooth = 15 fps × 720 px × 256 colors (for sports clips, animation). Standard = 10 fps × 480 px × 256 colors (default, good for Twitter and most chat). Small = 8 fps × 320 px × 128 colors (chat reactions, small download).

Can I trim before converting?

Yes — the clip range above is exactly that. The video plays inline, mark in/out, only that segment is converted.

Why GIF and not WebM or MP4?

GIF works in places those don't — Slack thumbnails, GitHub READMEs, email, old chat apps. If you control the playback environment, WebM/MP4 are 5-10× smaller. Use the Convert tool for that.

Is this free?

Sign up for 100 free credits. A typical GIF costs 2-5 credits depending on length and resolution. No subscription, top up as you go.

Related video tools

Need to make GIFs in code?

This tool is a wrapper around our REST API — three lines of curl will do the same job in your build pipeline or backend.

View API docs
curl -X POST https://api.ffhub.io/v1/tasks \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d {
    "command": "-ss 5 -i https://you.com/in.mp4 -t 4 -vf fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse=dither=bayer -loop 0 output.gif"
  }
Video to GIF Converter Online — Trim and Create GIFs | FFHub