Comparison
- Size: MP4 wins by 10–50× on photographic content; GIF close on flat pixel-art
- Playback: GIF plays inline everywhere, no codecs; video needs a player element
- Sound: GIF has none; MP4 carries audio
- Looping: GIF loops by default; video needs the loop attribute
- Editing: GIF frames extract as stills; video needs a transcoder
Decision rule
Under ~10 seconds + simple graphics + must play inline in any context (email, chat, docs) → GIF. Longer, filmed, or has audio → MP4/WebM. On your own website you control the player, so video wins almost every time there.
The hybrid trick
Many sites serve MP4 inside a <video loop muted playsinline> tag styled to look exactly like a GIF — the format GIFs get, the size videos have. Chat apps increasingly do this conversion for you.