Drop a cap on that X GIF.
X accepts gifs up to 15 mb (5 mb for ads). Over the cap, your post fails silently — no error, just nothing happens. Compress to fit.
- x posts cap gifs at 15 mb · x ads cap them at 3 mb · 1280×1080 dimension cap · over the cap and the post silently fails
gifcap. drop your clip in gifcap. set the cap to 14 mb for posts or 2.5 mb for ads. resolution at 1280 px. gifcap binary-searches quality until it fits.
| axis | manual ffmpeg / online tools | gifcap |
|---|---|---|
| hits x's 15 mb cap reliably | trial-and-error | always — binary search |
| 3 mb ad cap support | requires separate workflow | set the cap, done |
| 1280×1080 dimension cap | rejected by upload | preset for x width |
| quality at 3 mb | dithered ad copy | gifski per-frame palettes |
| cost | free | free tier; pro $29 lifetime |
How gifcap solves this — in detail
X (formerly Twitter) silently rejects GIF uploads that miss any of three constraints: file size (15 MB organic / 5 MB ads), dimensions (1280×1080 max), or aspect ratio (1:1 to 3:1). The web upload widget rarely tells you which one tripped — it just refuses to attach the file. Diagnosing this without a deterministic encoder costs minutes per post.
gifcap targets all three deterministically. The binary-search size cap is set to 14 MB for organic posts (1 MB safety margin) or 2.5 MB for ads (sharp safety margin under the 3 MB ad performance cliff). The output dimensions clamp at 1280 px wide on the longer axis, and gifski's per-frame palette keeps the visual quality high in the tight ad cap.
Worth noting: X transcodes uploaded GIFs to MP4 server-side for autoplay in the feed. Your upload is a GIF; what your audience sees plays like a video. The encoder choice still matters because the transcode preserves what's there — it can't fix dithering or smudging in the source.
X (Twitter) — current GIF limits
- Organic post cap: 15 MB
- Ad post cap: 5 MB (3 MB is the practical performance ceiling)
- Dimensions: 1280×1080 max
- Aspect ratio: 1:1 to 3:1
- Server-side transcode: GIF → MP4 for in-feed autoplay
- Mobile autoplay: yes
- Multiple GIFs per post: not supported (1 GIF max per tweet)
- Failure mode: silent reject if any cap missed