Private Video to GIF Converter & Palette Optimizer (MP4 / WebM / MOV)

100% client-side MP4/WebM/MOV to animated GIF89a converter. Features clip trimming, FPS & resolution control, 256/128/64/32-color adaptive palette quantization, Bayer dithering, caption overlays, and frame-by-frame pruning.

1. Video Clip & GIF89a Compression Config

Pure Client-Side GIF89a LZW + Bayer Dither
🎞️

Drag & Drop MP4 / WebM / MOV video here, or click to select

Zero server uploads · No SharedArrayBuffer required · Works offline on desktop & mobile

0.0s
3.0s
💡 Recommended Developer Resources & Cost SaversPartner Links · Zero Extra Cost to You

Why Use a 100% Client-Side Video to GIF89a Workbench?

Whether you are embedding an interactive UI walkthrough in a GitHub README.md, creating a bug reproduction clip for Linear/Jira, or crafting a reaction meme for Discord, animated GIFs remain the most universally supported autoplay format across web browsers and email clients.

  • Instant Startup Without Heavy 30MB FFmpeg Downloads: Powered by a custom client-side RGB555 histogram palette quantizer and 12-bit variable-length LZW encoder that works in every modern browser without requiring SharedArrayBuffer headers.
  • Frame-Level Precision & Caption Overlays: Inspect every sampled frame on an interactive filmstrip, uncheck unwanted transition frames, and burn crisp outlined top/bottom captions directly into your GIF.

Frequently Asked Questions (FAQ)

Q1 Do my video files ever get uploaded to a server during GIF conversion?
Never. Unlike traditional online MP4-to-GIF converters that upload your private screen recordings or family videos to remote cloud servers, this tool decodes video frames and encodes the GIF89a LZW binary stream 100% locally inside your browser memory. There are no file size paywalls, no watermarks, and zero privacy risks.
Q2 How can I reduce the output GIF file size for GitHub READMEs, Discord, or Slack?
01
Lower Width & FPS: Set Target Width to 320px or 480px and Frame Rate to 10 FPS for the sweet spot between sharpness and size
02
Palette Quantization: Switch from 256 Colors to 128 Colors or 64 Colors to dramatically improve LZW dictionary compression efficiency
03
Prune Redundant Frames: Uncheck static start/end frames in the Sampled Frame Strip and click Re-encode.
Q3 When should I enable or disable Bayer 4×4 Ordered Dithering?
Because GIF89a supports at most 256 colors per frame, natural videos with sky gradients or lighting transitions can suffer from visible color banding. Enabling Bayer 4×4 dithering uses a structured pixel matrix to smooth out color transitions. For flat-color software UI recordings or terminal demos, disabling dithering keeps solid backgrounds uniform and shrinks the LZW output size.