Why Twitter GIFs Download as MP4 (and How to Get a Real GIF)
Every GIF on X is secretly a silent MP4 video. Here is why X does that, when MP4 is better, and how to get a real .gif file when you need one.
You find a perfect reaction GIF on X, download it, and get a file called something like clip.mp4.
Nothing went wrong. That's what the GIF actually is on X's servers. Here's why, and what to do if you need a real .gif.
X has stored GIFs as video since 2014
When Twitter added GIF support in 2014, it made a quiet engineering decision: every GIF anyone uploads is converted into an MP4 video with no sound, which the app then plays on a loop. To you it looks like a GIF. Underneath, it's a video file.
The reason is size. GIF is a format from 1987. It compresses each frame on its own and is limited to 256 colours. Modern video codecs like H.264 compress across frames and handle millions of colours. In practice:
| Same 4-second clip | File size |
|---|---|
| Animated GIF, 480 px wide | about 3–6 MB |
| MP4 (H.264), 480 px wide | about 200–500 KB |
Ten times smaller, and better looking. For a platform serving billions of views a day, that difference is enormous.
When the MP4 is the better choice
Most of the time, keep the MP4. It plays as a looping GIF in:
- WhatsApp, Telegram, Signal and iMessage
- Instagram and TikTok (as a short video)
- Every video editor, slideshow tool and presentation app
When you need a real .gif
Some places still only accept genuine GIF files:
- Slack, Reddit comments and many forums
- Email newsletters, since most email apps won't play video
- Older CMSs, wikis and message boards
For those, use the Twitter GIF downloader. Paste the link and press GIF. We convert the MP4 with a two-pass palette method that keeps colours clean, cap it at 480 px wide and 12 fps, and send it to you as a looping .gif.
Converting the MP4 yourself
If you've already downloaded the MP4 and are comfortable with the command line, FFmpeg gives the best result:
ffmpeg -i clip.mp4 -vf "fps=15,scale=480:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" -loop 0 clip.gif
That's the same approach we use on the server, minus the size safeguards.
Questions people also ask
Is an MP4 "GIF" lower quality than a real GIF?
The opposite. MP4 supports millions of colours, while GIF is limited to 256 per frame. The MP4 version almost always looks better.
Can I upload the MP4 back to X as a GIF?
X will treat it as a normal video with a play button. To post it as a GIF, upload the .gif file instead and X will convert it again.