Convert MP4 to GIF Only When the Destination Refuses Video

Discord, Slack, and X will play a short MP4. Email and a surprising number of “meme upload” boxes still want .gif. Going MP4→GIF is a downgrade: 256 colors per frame, no real audio, and a file that often grows. Do it because the box said GIF, not because you think GIF is “the web format.”

Shrynk registers both directions. GIF to MP4 is the size win. This page is the stubborn CMS.

Keep MP4 unless you must

Keep the MP4Make a GIF
Chat apps that play inline videoA form that lists GIF and not MP4
Anything with audio you needA silent loop under ~8 seconds
A 30-second screen recordingA 2-second reaction you will not resize up

Audio is dropped. If the joke is a line of dialogue, GIF is the wrong container. Extract the audio separately if you need both — they will not stay in sync as one GIF.

The only two knobs: fps and width

On mp4 → gif the panel is not the video quality dropdown you see on mkv→mp4. It is:

Default 15 / 320 exists so the file does not explode. A 1080p source dumped to 1920-wide 30 fps GIF is how people create an 80MB “meme” that Gmail blocks. Raise width until text is readable. Raise fps only if motion strobes. Do not max both “to be safe.”

Shrynk Convert tab: mp4 → gif selected. fps default 15, width default 320.
Search mp4, click mp4 → gif. fps 15 and width 320 are the safe defaults — not 30 and 1920.

Steps

  1. Trim the clip before convert if you can (phone editor, or a real cutter). This pair does not expose start/end time.
  2. Install Shrynk.
  3. Convert → mp4 → gif. Not Compress. Compress writes MP4.
  4. Start at 15 / 320. Run. Open the GIF. If type is mush, width 480 or 640. If motion strobes, fps 20 — then stop.
  5. If the GIF is still huge, shorten the source and run again. Do not GIF→MP4→GIF to “optimize.”

Free = one file. The browser compressor will not emit GIF. First run.

Why colors look dirty

GIF is 256 colors per frame. Gradients and faces posterize. That is the format. A screen recording of a photo will look worse as GIF than as MP4. A few-color UI pointer can look fine. If the clip is photographic, fight the CMS or send MP4.

Failures that look like bugs

What this will not do

Do the math before you max the sliders

A 10-second clip at 15 fps is 150 frames. At 320×180, each paletted frame is small; the GIF might be 1–4MB. At 1280×720 and 30 fps you have 300 frames of HD palette data. That is how you get 40–80MB and a Gmail bounce. If the CMS cap is 5MB, stay near 320–480 wide and 10–15 fps, and trim the clip to a few seconds first.

This pair does not expose start/end. Trim in the phone editor, Clipchamp, or any cutter, save a short MP4, then convert. Converting a 3-minute screen recording “to pick a moment later” is how SSDs fill up.

Email and Teams: many tenants block GIF over a few megabytes or strip animation. Test one GIF to yourself before you send the client the only copy. If they can take MP4, send MP4. This page exists because some cannot.

Loop: GIF players loop. That is the feature the CMS wanted. It is also why a 15-second GIF of a talking head becomes torture. Keep GIF under ~8 seconds unless they asked for the whole take.

After a too-big GIF, do not run gif → mp4 and back. You pay 256 colors twice. Go back to the MP4, reset fps/width, convert once. Free is one file so you can iterate on the same source. The Compress tab will not emit GIF; it emits MP4.

Where GIF still wins (rarely)

Inline in an email template that strips <video>. A CMS media library from 2014. A Slack custom emoji pipeline that only accepts GIF (and then you want 128×128, not 320 — resize the MP4 first or set width 160, the minimum on this slider). If Slack wants an emoji, 160 and a 2-second source. 320 is already large for that.

Transparency: GIF can have a single transparent color. This encode is a video flatten, not a sticker pipeline. Do not expect a clean hole around a subject. For stickers stay on a designed GIF or a WebM/APNG stack we do not sell here.

Compare one frame: export a still from the MP4 (phone screenshot is fine) next to the GIF at the same width. If the GIF’s face is a watercolor, you needed MP4 and a different CMS. If the GIF is a few-color UI pointer, you are in the happy path. Iterate fps/width on the original MP4 only. Convert vs the site compressor: the site will not write GIF.

A 3-second reaction at 15/320 is the intended job. A 45-second screen lecture as GIF is a mistake even if the CMS allows it. Split the lecture or send MP4. If they insist on GIF for a long take, they will get a huge, dirty file and that is the format — document the fps/width you used so the next person does not “fix” it by maxing both sliders. Write those two numbers in the ticket. The next convert should start from the MP4 with the same pair, not from the oversized GIF.

FAQ

Why is the GIF bigger?

Paletted frames vs H.264 residuals. Default 320-wide or it gets worse.

Default fps / width?

15 and 320. Raise one at a time.

Want smaller motion instead?

GIF to MP4 or compress the MP4.

Download Shrynk.