How to convert a screen recording to GIF on Mac
By Ziad Ziadeh, Snapline’s developer · Published 5 September 2026 · Last updated 15 September 2026
The short version
- macOS records the screen (⇧⌘5, QuickTime Player) but only ever saves a QuickTime movie. There is no built-in way to save or convert to a GIF.
- Free route: record with ⇧⌘5, then drop the .mov on Gifski (free, open source) or run ffmpeg in Terminal. Both give you width and frame rate; neither tells you the file size until it's done.
- Snapline records and converts in one app: press ⌥⌘R, then click GIF on the finished recording. The Trim Editor opens in Convert mode with a crop, a range, Chat, Docs and Full presets or your own size, frame rate, speed, dithering and loop, and quotes the file's size before you click. A finished GIF plays in Snapline, and Adjust GIF re-cuts it from the recording in place.
What macOS gives you (and doesn't)
macOS can record your screen, but it cannot make a GIF. Press ⇧⌘5, choose Record Selected Portion or Record Entire Screen, and stop from the menu bar; QuickTime Player's File → New Screen Recording is the same recorder in a window. Either way the result is a QuickTime movie, a .mov. Neither app has a GIF export, QuickTime's Export menu offers only movie sizes, and Preview opens a GIF but won't write one from a video. So "screen recording to GIF" on a Mac is always two steps, record and then convert, unless the recorder converts itself.
| Method | Records the screen | Converts an existing movie | Size and frame rate controls | Size known before converting | Cost model |
|---|---|---|---|---|---|
| ⇧⌘5 / QuickTime Player | Yes, to .mov | No GIF output | n/a | n/a | Free, preinstalled |
| Gifski | No | Yes: drag a video in | Width, frame rate, quality | No: convert, then check | Free, open source |
| ffmpeg | No (it can, but not practically) | Yes, from Terminal | Anything, as filter arguments | No: each attempt is a full encode | Free, open source |
| Kap | Yes, straight to GIF | No | Size, frame rate | No | Free, open source; last release October 2022 |
| Snapline (⌥⌘R, then GIF) | Yes, to MP4 with pause and trim | Its own recordings | Presets or size, 10 to 30 fps, speed, dither, loop | Yes: estimated size, range and time, live | One-time license; free to try |
Free route 1: Gifski
Gifski is a free, open-source GIF encoder with a Mac app on the App Store and a command-line version. It doesn't record anything; it takes a video you already have and encodes it with a palette built from the video itself, which is why its output looks better than most converters.
- Record with ⇧⌘5 and stop from the menu bar. The .mov lands on the Desktop by default.
- Open Gifski and drag the movie onto its window.
- Choose a width (the height follows), a frame rate and a quality level, then click Convert.
- Check the size in Finder. If it's too big for where it's going, convert again narrower or at a lower rate; there's no estimate, so it takes a run each time.
The command-line version wants a folder of PNG frames unless it was built with video support, so for a one-off the app is the easier route.
Free route 2: ffmpeg in Terminal
If you already use Homebrew, ffmpeg does the whole job from Terminal and gives you every knob. Install it with brew install ffmpeg, then:
ffmpeg -i recording.mov \
-vf "fps=15,scale=800:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" \
recording.gif
The two filters that matter are palettegen and paletteuse: without them ffmpeg quantizes every frame to a generic 256-colour palette and the result bands and speckles. fps=15 and scale=800:-1 are the size levers; change them and run again until the file fits. Adding -ss and -t before -i trims to a start time and a length. It works, and it's scriptable, but every attempt is a full encode with no preview, and a 30-second Retina clip at full size can take a while to find out it came out at 40 MB.
Kap, GIPHY Capture, and the recorders that went quiet
Two names come up in every old thread about GIF recording on a Mac. Kap is a free, open-source recorder that saves straight to GIF, or to MP4, WebM and APNG through plugins); it's a nice tool, but its last release, 3.6.0, dates from October 2022, and users have reported Screen Recording permission trouble on recent macOS versions. GIPHY Capture is the other, a free GIF-first recorder; check its App Store page for its current state before building a workflow on it. If either already works on your Mac, fine. If you're choosing today, the routes above and below are the ones that are being maintained.
Where the free routes stop
They all share the same shape: record in one place, convert in another, and find out the size at the end. That's fine for a clip a month. It wears when GIFs are part of how you work, because the interesting question ("will this play inline in the issue, or does it need to be 20 percent smaller?") is only answered after the encode, and the answer is usually "convert again." The recording and the GIF also end up as two unrelated files, so the trim you made in one doesn't apply to the other, and a mic track or a keystroke overlay you recorded is something you have to remember to carry across.
Record and convert in one app: Snapline
Snapline records the screen to MP4 and converts the finished recording to a GIF from the same card, with the size quoted before the conversion runs:
- Press ⌥⌘R (rebindable) to record a region, a window or a whole display. Pause and resume from the menu bar; paused time is simply absent from the file. Trim the finished take in place if it needs a tighter start and end; the GIF is made from the trimmed length.
- Click GIF on the recording's card, or choose Convert to GIF… on the recording in History or the Shelf. The Trim Editor opens in Convert mode: a crop layer over the player, the range on the scrubber, and the GIF options in a panel under it. Drag the crop to keep only the part of the screen that matters, and set In and Out for the seconds you want; both narrow the GIF without touching the recording.
- Pick a preset or set the options yourself. Chat is 800 px wide at 10 fps, small enough to paste anywhere; Docs is half the recording's pixels at 15 fps, the size it occupied on screen on a Retina display, smooth enough to follow a cursor; Full is every pixel at 20 fps. Anything else reads as Custom. Nothing is ever upscaled past the recording.
- Read the estimate. The window reads the recording once, runs ten short stretches of it through the real encoder, and quotes the file's size (with a range when the range is wide enough to matter) and how long the conversion will take. It updates as you change any option. Past 10 MB it warns that the GIF exceeds GitHub’s GIF attachment limit; Convert stays enabled. Other destinations have different limits.
- Press Return. Convert is the default button, so the remembered options cost one keypress. If you'd rather skip the editor, untick Show these options each time and the GIF button converts straight away with the options you last used; Settings → Recording holds the same controls and brings the editor back.
- Play it, and re-cut it if you like. The finished GIF opens in Snapline's own player, with a frame scrubber and a counter that reads position over total in frames and seconds. Every GIF remembers the recording it came from: Adjust GIF… on the GIF's card or tile reopens the editor on that recording with the GIF's crop and range already set, and Replace GIF writes the new one in place, same entry, same file name. The export runs beside the original and is swapped in only when it succeeds, so a cancel or a failure leaves the GIF you had untouched.
Because Snapline made the recording, everything in it carries into the GIF: the trim, and the optional click rings and keystroke capsule, which are drawn into the frames themselves. Recordings up to three minutes convert; the default GIF (800 px, 10 fps, looping, no dither) is byte for byte the one earlier versions made, so nothing you relied on changed. Snapline is free to try in full for 14 days, requires macOS 14 or later, and after the trial capture unlocks with a one-time license: no subscription, no account.
Every GIF option, and what it does to the file
GIF size depends on dimensions, frame count, colors, and motion. GIF uses LZW compression for indexed pixels; encoders can also avoid repeating unchanged regions. There is no exact width-times-frames formula for file size. The options below control the trade between detail and bytes.
| Option | Choices | What it does | Effect on size |
|---|---|---|---|
| Size | Full, Half, or a custom width | Full keeps every pixel of the recording (2× on Retina). Half is the size the content occupied on screen. A custom width sets the pixels directly; never upscaled past the source. | Half the width means one quarter of the pixels per frame; encoded size depends on the content. |
| Frame rate | 10, 15, 20, 25 or 30 fps | How many frames per second the GIF holds. 10 suits a UI walkthrough; 15 reads a moving cursor; 20 to 30 is for fluid motion. | Higher rates add frames; the byte increase depends on how much changes. |
| Speed | 1×, 1.5×, 2× | Plays the recording faster by sampling it further per frame. Frame delays are unchanged, so a 2× GIF of a 20 s take lasts 10 s. | Fewer frames, so about 1/speed of the bytes. |
| Dither gradients | Off or on | An ordered pattern that smooths banding in shading and photos. Keyed to pixel position, so still regions stay skipped between frames. | Can increase size. Compare the estimate with it on and off. |
| Loop forever | On or off | Off plays once and stops on the last frame. | None. |
GIF stores frame delays in hundredths of a second. At 15 fps, a fixed 7-centisecond delay makes 150 frames last 10.5 seconds; a fixed 6-centisecond delay makes them last 9 seconds. Snapline uses a repeating 7, 6, 7-centisecond schedule, totaling 20 centiseconds per three frames and 10 seconds for 150 frames. Its other offered rates use the same cumulative-timing calculation.
Getting a GIF under 10 MB
GitHub’s GIF attachment limit is 10 MB. Limits differ by file type and destination. To reduce a GIF’s size:
- Narrow it. 800 px wide is legible for UI text and reduces the pixel count compared with a full-width Retina recording. In Snapline that's the Chat preset; in ffmpeg it's scale=800:-1.
- Drop the frame rate. 10 fps for a walkthrough, 15 if the cursor matters. Going from 30 to 10 reduces the frame count by two thirds; the byte savings depend on the content.
- Trim. Remove pauses and unnecessary sections; cut the pause at the start and the fumbling at the end. Snapline's trim editor does this in place and the GIF follows.
- Speed it up. A 1.5× or 2× GIF of a slow demo is often easier to watch and uses fewer frames.
- Leave dithering off unless the recording has gradients or photos in it.
Snapline estimates size by encoding samples of the recording. The final file may differ from the estimate, so check its size before uploading. If the GIF is still too large, share the MP4 instead.
Questions
How do I convert a screen recording to a GIF on a Mac?
Record with ⇧⌘5 or QuickTime Player, which gives you a .mov, then convert it with a free tool: drop it on Gifski, or run ffmpeg with the palettegen and paletteuse filters. Or record in Snapline and click the GIF button on the finished recording, which opens the Trim Editor in Convert mode and quotes the file's size before it converts.
Can the built-in Mac screen recorder save a GIF?
No. ⇧⌘5 and QuickTime Player record to a QuickTime movie (.mov) only. Turning that movie into a GIF takes a second tool, or a recorder that converts itself.
Why is my screen recording GIF so large, and how do I make it smaller?
GIF uses LZW compression, but detailed, changing frames can still produce large files. Dimensions, frame count, palette, dithering, and motion all affect the result. Shrink the width first (800 px is plenty for a chat or an issue), then drop the frame rate to 10 or 15 fps, then trim the clip. Snapline's Convert to GIF editor shows the estimated size as you change each of these, so you can stop when it fits.
What size GIF will GitHub, Slack and chat apps play inline?
GitHub limits GIF attachments to 10 MB. Other file types and chat apps have different limits; check the destination’s requirements. Snapline warns in the Convert to GIF editor when the estimate passes 10 MB; the conversion still runs if you want it.
What frame rate should a screen recording GIF use?
10 fps is enough for a UI walkthrough and keeps the file small; 15 fps reads a moving cursor smoothly; 20 to 30 fps is for motion that has to look fluid, at several times the size. Players may clamp very short delays, so playback timing can vary between apps.
Why does a 15 fps GIF drift out of time?
GIF stores frame delays in hundredths of a second. At 15 fps, a fixed 7-centisecond delay makes 150 frames last 10.5 seconds; a fixed 6-centisecond delay makes them last 9 seconds. Snapline uses a repeating 7, 6, 7-centisecond schedule, totaling 20 centiseconds per three frames and 10 seconds for 150 frames. Its other offered rates use the same cumulative-timing calculation.
Should I turn on dithering for a screen recording GIF?
Only if the recording has gradients, photos or video in it. Dithering smooths banding in shaded areas at the cost of a larger file; the increase depends on the content. Flat UI with text usually looks cleaner without it.
How long can a screen recording GIF be?
There is no format limit, but size and encode time grow with every second. Snapline converts recordings up to three minutes long; past that, share the MP4 instead.
Can I convert a MOV to GIF on a Mac for free?
Yes. Gifski is free and open source and takes a .mov directly; ffmpeg is free and does the same from Terminal. Both are covered step by step above.