Convert Video to GIF on Mac
Convert video to GIF on Mac with FFmpeg, or export MP4 from QuickTime when the tool allows video instead of GIF.
Your bug repro is a screen MP4. The ticket form, old doc tool, or design critique thread only accepts GIF. You need a short loop, not a full-screen animation that blows the attachment cap. Before you spend twenty minutes on palette flags, ask whether MP4 works: trimmed MP4 is often ten times smaller and clearer for UI demos. QA teams file the same three-second interaction weekly; trimming and width caps matter as much as palette tuning.
MP4 or GIF
| What the tool accepts | What to send |
|---|---|
| Video | Trimmed MP4 from QuickTime |
| GIF only | Short GIF, about 800 px wide, under 10 seconds |
| Format | Typical 5 s UI clip size | Color quality |
|---|---|---|
| MP4 (H.264) | 1 to 3 MB | Full |
| GIF | 5 to 20 MB | 256 colors |
In QuickTime: open the file, Edit → Trim (⌘T), File → Export As → 720p. Upload that MP4 if the tool allows it. Many issue trackers and Slack threads accept video now.
If you must ship GIF, trim first. For shrinking an existing GIF, see compress GIFs on Mac . For MOV sources that need MP4 first, see MOV to MP4 on Mac .
| Ticket system | Practical target |
|---|---|
| Under 5 MB cap | 640 px wide, 8 fps, under 5 s |
| Under 10 MB cap | 800 px wide, 10 fps |
| No cap but slow upload | Still trim; MP4 if allowed |
Trim in QuickTime
Cut the clip to the exact seconds you need.
- Open MOV or MP4 in QuickTime.
- Edit → Trim (⌘T), drag handles to the action.
- Remove cursor idle time at the start.
A 3-second loop beats a 30-second GIF every time. Note the trimmed duration before FFmpeg so you do not re-encode dead frames.
Crop mentally to the affected UI region when you can. A full 4K desktop GIF is unnecessary when the bug is a single dialog. If QuickTime cannot crop tightly, trim duration first and reduce width in FFmpeg rather than shipping full-screen pixels.
Convert to GIF with FFmpeg
QuickTime cannot save GIF. FFmpeg can with a palette pipeline.
Open Terminal (Applications → Utilities → Terminal). Install FFmpeg through Homebrew (install Homebrew first if brew is not found):
brew install ffmpeg
Standard palette command:
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
| Part | Meaning |
|---|---|
fps=10 | Ten frames per second (lower = smaller) |
scale=800:-1 | 800 px wide, height keeps proportion |
palettegen / paletteuse | Better colors than naive GIF |
Shorter clip with lower fps:
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
| Flag | Meaning |
|---|---|
-ss 00:00:02 | Start at 2 seconds |
-t 4 | Duration 4 seconds |
fps=8 | Eight fps for smaller files |
If the GIF still exceeds the upload cap, trim more or drop width to 640 px.
| Symptom | Try |
|---|---|
| Muddy text in GIF | Lower fps, shorter clip, or use MP4 |
| Banding in gradients | Shorter clip; palette cannot fix long gradients |
| Still too large | scale=480:-1 and fps=8 |
Dark-mode UI and purple gradients are the hardest GIF cases. A three-second clip with the dialog centered often looks better than a ten-second full-screen capture at the same width.
Using GetCompress
GetCompress fits convert video to GIF on Mac when you want trim, frame preview, and export without memorizing palette syntax.
Drop MOV or MP4 into the app. Trim in the preview, pick GIF output, set width (800 px is a common bug-report size), check the loop, and export.
Workflow features that help:
- Preview and trim: see the loop before saving palette-limited GIF.
- Batch queue: convert several repro clips after a test pass.
- Switch to MP4: same window if Slack or the tracker accepts video instead.
- Presets: save “bug GIF 800w 10fps” for QA workflows.
- Local processing: keep unreleased product UI off online converters.
- Optimize existing GIF: drop an oversized GIF to compress without re-recording.
- Frame-by-frame GIF preview: catch unreadable text before Jira or Linear attachment.
Ask about MP4 first. When GIF is mandatory, GetCompress shows frames before you attach a 15 MB animation to a ticket. Save a team preset (“Linear GIF 800w 10fps”) so every QA engineer exports the same profile after a test pass.
Mac screen recordings saved as MOV can enter the same GetCompress queue as MP4 bug repros. Trim, pick GIF output, and preview the loop without a separate container conversion step when the source already plays in QuickTime and palette export accepts the file.
When Linear or Jira shows a hard megabyte cap in the attachment UI, export at 640 px and 8 fps first, check size in Finder, then re-run at 480 px only if needed. Two quick passes beat one oversized upload that bounces back from the ticket.
- Compress GIFs on MacMake GIF files smaller on Mac: shorten the loop, use MP4 when possible, or convert with FFmpeg or GetCompress.
- Convert MOV to MP4 on MacConvert MOV to MP4 on Mac with QuickTime export or FFmpeg. H.264 MP4 for uploads and Windows.
- For developers and QAA practical workflow for shrinking MOV, MP4, WebM, and GIF repro recordings so evidence stays readable and fits issues, pull requests, and support tickets.
- Convert GIF to MP4 on MacConvert GIF to MP4 on Mac with FFmpeg for smaller files and smoother motion, or use GetCompress for preview and one-click export.
Buy GetCompress now for local media compression with reusable presets and no media upload.