Whether you need a GIF for a GitHub README, a Slack message, or an email body, ChangeThisFile converts any common video format to animated GIF in seconds. Upload your clip, pick the source format from the list below, and get a looping GIF — free, with no watermark, and no account required.

All video-to-GIF conversion runs server-side using FFmpeg. FFmpeg generates an optimized 256-color palette from your video frames, then renders the GIF with Floyd-Steinberg dithering for the best color accuracy at the smallest file size. Your file is automatically deleted from our servers after conversion.

Supported Video Formats

ChangeThisFile converts all major video formats to GIF. Click any format below to go directly to its converter:

  • MP4 to GIF — The most common source format. H.264-encoded MP4 files from phones, screen recorders, and download tools all convert cleanly.
  • AVI to GIF — Classic Windows video format. AVI files from older cameras and software convert well; audio track is stripped automatically.
  • WebM to GIF — Google's open web video format. VP8 and VP9 encoded WebM files both work. Common output from browser-based screen recorders.
  • MOV to GIF — Apple QuickTime format. MOV files from iPhones, Final Cut Pro, and macOS screen recording all convert cleanly.
  • MKV to GIF — Matroska container format. Supports virtually any video codec inside. Common for downloaded movies and TV clips.
  • WMV to GIF — Windows Media Video. Legacy Microsoft format from older Windows Movie Maker and screen recorders.
  • FLV to GIF — Flash Video format. Older web video format still found in archived content and some download sites.
  • 3GP to GIF — Mobile video format used by older phones and some Asian markets. Small file size, lower resolution.

How Video-to-GIF Conversion Works

Converting video to GIF is a two-pass process. FFmpeg runs both passes automatically when you upload your file.

Pass 1: Palette Generation

GIF is limited to 256 colors per frame (or per animation, if using a global palette). Your video likely contains millions of colors. In the first pass, FFmpeg analyzes all frames and selects the 256 colors that best represent the color distribution in your specific clip. This is called palette generation, and it's critical — a poorly chosen palette produces washed-out, banded output. FFmpeg's palettegen filter samples every frame and builds a histogram to find the optimal 256.

A local palette (per-frame color selection) produces better quality but larger files. A global palette (one set of 256 colors for the whole animation) produces smaller files. ChangeThisFile uses a global palette generated from the full clip — the best tradeoff for most content.

Pass 2: Frame Extraction and Encoding

In the second pass, FFmpeg decodes each video frame, applies the palette via the paletteuse filter with Floyd-Steinberg dithering, and encodes the result as a GIF frame. Floyd-Steinberg dithering distributes quantization error to neighboring pixels, visually simulating colors not in the 256-color palette. The result looks smoother than no dithering, at the cost of slightly noisier textures.

The encoded frames are assembled into a GIF with the specified frame delay (derived from the video's frame rate, capped at a practical GIF-friendly rate). The output loops infinitely by default.

Tips for Smaller GIFs

GIF files are notoriously large — a 10-second 480p clip can easily reach 20MB. Here are the most effective techniques to reduce file size:

  • Reduce resolution before converting. File size scales with the square of resolution. A 480p GIF is 4x smaller than the same clip at 960p, with minimal visible quality loss for typical GIF uses (demos, reactions, READMEs). Crop to just the content that matters before converting.
  • Lower the frame rate. Video is typically 24-60fps. GIFs rarely need more than 10-15fps. At 10fps, a 10-second GIF has 100 frames. At 30fps, the same clip has 300 frames — 3x larger, without 3x better visual quality for typical GIF motion.
  • Trim the clip. File size scales linearly with duration. A 3-second GIF is 3x smaller than a 9-second GIF of the same content. Cut to just the essential moment.
  • Reduce the color count. GIF allows 2 to 256 colors. Many clips look acceptable with 64 or 128 colors — especially those with limited color variety like screen recordings, text animations, and line art. Fewer palette colors = smaller LZW-compressed frames.
  • Prefer static backgrounds. GIF encodes each frame independently. A clip with a moving camera or complex background changes many pixels per frame, resulting in large frames. Screen recordings and clips with static backgrounds compress dramatically better.

Quality vs File Size

GIF quality and file size are in direct tension. Every setting that improves quality also increases file size.

SettingQuality ImpactSize Impact
Higher resolutionSharper imageMuch larger (quadratic)
More frames per secondSmoother motionLarger (linear)
More palette colorsBetter color accuracySlightly larger
Floyd-Steinberg ditheringSmoother gradientsSlightly larger
Longer durationMore contentLarger (linear)

When to use WebM instead of GIF: If you're embedding on a website, use a <video> element with autoplay, loop, and muted attributes instead. A 20MB GIF becomes a 500KB WebM with better quality. Browsers have supported this since 2015. GIF is only necessary where the platform doesn't auto-play video: GitHub issues, Slack messages, and email bodies.

Target sizes by platform: GitHub README under 5MB (hard limit 10MB), Slack/Discord under 8MB, email under 1MB.

Privacy and Security

Video-to-GIF conversion on ChangeThisFile runs entirely on our servers — your video file is uploaded over an encrypted HTTPS connection, converted by FFmpeg, and the resulting GIF is returned to your browser. The original video and the converted GIF are automatically deleted from our servers after conversion. We don't store, analyze, or share your files.

The 50MB upload limit applies. For larger video files, trim the clip before uploading — most GIF use cases require only a short segment of a longer video.

Format-to-GIF Conversion Comparison

Benchmark: 5-second 720p clip converted to GIF at 15fps with a global palette. Source file size varies by codec; GIF output size depends on visual complexity, not source format.

Source FormatSource SizeGIF OutputConversion TimeNotes
MP4 (H.264)2.1 MB4.8 MB3.2sFastest decode, most consistent — recommended default
AVI (uncompressed)15.4 MB4.6 MB2.8sCleanest source data produces smallest GIF
WebM (VP9)1.8 MB4.9 MB3.5sSmallest upload size; slightly slower VP9 decode
MOV (H.264)2.3 MB4.8 MB3.1sIdentical to MP4 — same codec, different container
MKV (H.264)2.2 MB4.8 MB3.3sContainer only; output matches MP4 source quality
WMV (VC-1)3.8 MB5.1 MB4.1sSlower VC-1 decode; codec artifacts carry through
FLV (H.263)4.2 MB5.4 MB4.4sOldest codec; most visible quality degradation
3GP (H.263)0.9 MB2.1 MB1.8sLower source resolution = naturally smaller GIF

Key finding: GIF output size is determined by the visual complexity of the content (colors, motion, resolution), not the source format. A 2MB WebM and a 15MB AVI of the same clip produce nearly identical GIFs. Source format mainly affects upload speed and decode time — not GIF quality.

Other Conversion Options

GIF to video (reverse conversion): Already have a GIF that's too large? Convert it back to a more efficient video format. A 20MB GIF typically becomes a 500KB MP4 with identical visual quality. Try GIF to MP4 or GIF to WebM.

Image-to-GIF conversions: ChangeThisFile also converts static image formats to GIF: PNG to GIF, JPG to GIF, WebP to GIF, BMP to GIF, and SVG to GIF. Note that converting a single still image produces a static (non-animated) GIF.

Video-to-video conversions: If you need a different video format rather than GIF, see our full video format converter guide covering MP4, WebM, MKV, AVI, MOV, and more.

ChangeThisFile handles every common video format for GIF conversion: MP4, AVI, WebM, MOV, MKV, WMV, FLV, and 3GP. Upload your clip, convert for free, and download your GIF — no watermark, no signup, no file retention. For the best results, keep clips short (under 5 seconds), at 480p or lower resolution, and at 10-15fps. If your use case supports HTML5 video, use that instead — the quality will be dramatically better at a fraction of the file size.