Skip to content

Convert Video to GIF on Mac: 3 Methods

Convert MOV or MP4 to GIF on Mac with GetCompress, QuickTime (for MP4), or FFmpeg. Trim first, keep width low, and ask if video is allowed.

By Petr Samokhin

Your bug repro is a screen MP4. The ticket form or design thread only accepts GIF. You need a short loop, not a full-screen animation that blows the attachment cap.

Before you spend time on palette settings, ask whether MP4 works. A trimmed MP4 is often much smaller and clearer for UI demos. When GIF is mandatory, three routes cover most Mac jobs: GetCompress for a local trim-and-export flow, QuickTime for a video alternative, and FFmpeg for exact palette commands.

Method 1: GetCompress

Best for: bug repros, QA presets, and local GIF export with trim and frame preview.

GetCompress main window with GIF settings open, including quality, resolution, and format options
  1. Open GetCompress and drop a MOV or MP4 into the queue.
  2. Trim start and end in the preview so only the action remains.
  3. Choose GIF output, set a sensible width (800 px is common for tickets), and check the loop.
  4. Export, then attach the file. Keep the video master.

Processing stays on your Mac. Save a preset such as “bug GIF 800w” so the next repro takes a few clicks. You can also compress an existing oversized GIF without re-recording. For shrinking GIFs already on disk, see compress GIFs on Mac .

Method 2: Trim in QuickTime, then ask about MP4

Best for: One clip when the destination accepts video.

  1. Open the MOV or MP4 in QuickTime Player.
  2. Edit → Trim (⌘T) and cut idle time.
  3. File → Export As…720p or 1080p.

Upload that MP4 if the tool allows it. Many issue trackers and Slack threads accept video now.

FormatTypical 5 s UI clip sizeColor quality
MP4 (H.264)Often 1 to 3 MBFull
GIFOften 5 to 20 MB256 colors

QuickTime cannot save GIF. If the form truly requires GIF, use Method 1 or 3.

Limitation: No GIF export, no batch queue, no shared QA preset.

Method 3: FFmpeg palette export

Best for: Scripts, one-off Terminal work, and exact width or fps flags.

Install FFmpeg with Homebrew if needed:

brew install ffmpeg
ffmpeg -i input.mp4 -vf "fps=10,scale=800:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
PartMeaning
fps=10Ten frames per second (lower = smaller)
scale=800:-1800 px wide, height keeps proportion
palettegen / paletteuseBetter colors than a naive GIF encode

Shorter clip:

ffmpeg -ss 00:00:02 -t 4 -i input.mp4 -vf "fps=8,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 bug.gif

Limitation: You maintain the commands. Easy to mis-set scale or fps when you are in a hurry.

Which method should you use

SituationStart here
GIF required, recurring bug report videosGetCompress
Video is allowedQuickTime export
Scripts or exact FFmpeg flagsFFmpeg

For MOV sources that need MP4 first, see MOV to MP4 on Mac .

Settings that keep GIF files small

LeverPractical tip
TrimKeep loops under about 5 to 10 seconds
WidthStart at 800 px; try 640 px if the file is still large
Frame rate8 to 10 fps is enough for most UI clicks
Prefer MP4Use GIF only when the tool rejects video
Attachment limitStarting point
About 5 MB640 px, 8 fps, under 5 s
About 10 MB800 px, 10 fps
No hard capStill prefer MP4 when allowed

Dark-mode UI and heavy gradients are hard for GIF palettes. A short clip of the dialog often looks better than a long full-screen capture.

When a simpler export is enough

QuickTime plus an MP4 attachment can work when the thread accepts video. FFmpeg is enough for a one-off GIF if you already keep the palette command nearby.

GetCompress also helps when GIF is required often: trim and frame preview in one place, reusable presets, local processing for unreleased UI, and optional batch queues after testing. It does not replace a dedicated animation tool for long looping marketing GIFs.