How to Convert Screen Recording to GIF — All Platforms Guide 2026
Screen recording GIFs are everywhere — bug reports, product demos, tutorials, README files on GitHub. The workflow is simple: record your screen as video, then convert that video to GIF. This guide covers both steps on every platform.
Key Takeaways
- Record first, convert second — screen-to-GIF tools that record directly as GIF produce worse quality
- FFmpeg palette method gives the best quality GIF from any screen recording
- Keep GIFs under 15 seconds and 480-640px wide for reasonable file sizes
- For GitHub READMEs and docs, 10fps at 640px wide is the sweet spot
- Browser-based conversion at GifToVideo.net works without installing anything
Step 1: Record Your Screen
macOS
Built-in (Cmd + Shift + 5):
Press Cmd + Shift + 5 to open Screen Recording. Select area or full screen, click Record. The MOV file saves to your Desktop by default.
QuickTime Player: File → New Screen Recording. Same output, more control over audio settings.
Output format: MOV (H.264), typically 30fps at Retina resolution.
Windows
Snipping Tool (Windows 11 22H2+): Open Snipping Tool → click the video camera icon → select area → Record. Saves as MP4.
Xbox Game Bar (Win + G):
Press Win + G, click the Record button. Saves as MP4 to Videos/Captures.
OBS Studio (free, all platforms): Best for custom resolution, frame rate, and region selection. Record as MP4 with H.264.
Linux
# GNOME built-in (Ctrl + Shift + Alt + R)
# Or use FFmpeg directly:
ffmpeg -f x11grab -framerate 30 -video_size 1280x720 \
-i :0.0+0,0 -c:v libx264 -preset ultrafast screen.mp4iPhone / Android
Both platforms have built-in screen recording (Control Center on iOS, Quick Settings on Android). Output is MP4 at device resolution.
Step 2: Convert Video to GIF
Method 1: Browser-Based (Easiest)
No installation needed. Works with MOV, MP4, WebM files from any platform.
- Go to GifToVideo.net/video-to-gif
- Drop your screen recording file
- Set width (640px recommended for tutorials)
- Set frame rate (10-15fps for screen content)
- Download the GIF
Method 2: FFmpeg Palette Method (Best Quality)
The gold standard for screen recording GIFs. The two-pass palette method picks the optimal 256 colors for your specific content.
# Step 1: Generate optimized palette
ffmpeg -i screen.mp4 -vf "fps=10,scale=640:-1:flags=lanczos,palettegen" palette.png
# Step 2: Convert using palette
ffmpeg -i screen.mp4 -i palette.png \
-lavfi "fps=10,scale=640:-1:flags=lanczos [x]; [x][1:v] paletteuse" output.gifWith trimming (start at 2 seconds, capture 8 seconds):
ffmpeg -ss 2 -t 8 -i screen.mp4 \
-vf "fps=10,scale=640:-1:flags=lanczos,palettegen" palette.png
ffmpeg -ss 2 -t 8 -i screen.mp4 -i palette.png \
-lavfi "fps=10,scale=640:-1:flags=lanczos [x]; [x][1:v] paletteuse" output.gifMethod 3: macOS — Built-in sips + Automator
Create an Automator Quick Action that converts MOV to GIF via right-click:
- Open Automator → New → Quick Action
- Add a Run Shell Script action
- Paste the FFmpeg commands above
- Save as "Convert to GIF"
Now right-click any MOV → Quick Actions → Convert to GIF.
Method 4: Record Directly as GIF
Some tools record directly to GIF format. This is convenient but produces lower quality because there's no palette optimization step.
| Tool | Platform | Pros | Cons |
|---|---|---|---|
| LICEcap | Windows, macOS | Simple, lightweight | Fixed 256 colors, no palette optimization |
| Peek | Linux | GTK native, area select | No post-processing, basic quality |
| Kap | macOS | Beautiful UI, built-in trim | Good quality but larger files |
| ScreenToGif | Windows | Editor built in, frame-by-frame control | Windows only |
| Gifski | macOS, CLI | Excellent quality via pngquant | Slow encoding |
For best results, these tools should be used as a recording step — then re-encode the output through FFmpeg palette method if quality matters.
Optimizing Screen Recording GIFs
Screen recordings have unique characteristics that affect GIF quality: large flat areas of color, sharp text, and UI elements with precise pixel boundaries.
Resolution Guidelines
| Use Case | Width | FPS | Typical Size |
|---|---|---|---|
| GitHub README | 640px | 10 | 1-3 MB |
| Bug report (Jira, Linear) | 480px | 8 | 500 KB - 2 MB |
| Tutorial / documentation | 800px | 12 | 3-8 MB |
| Social media / Slack | 480px | 12 | 1-3 MB |
| Product demo (marketing) | 800px | 15 | 5-15 MB |
Text Readability
Screen recordings often show code or UI text. For readable text in GIFs:
- Minimum width: 640px for code content (below this, monospace text becomes illegible)
- Use 2x DPI scaling when recording on Retina/HiDPI displays, then scale down to 1x in FFmpeg
- Increase font size before recording if possible — 14pt+ for body text, 16pt+ for code
Reducing File Size
Screen recordings produce large GIFs because of high resolution and many unique frames. Strategies:
# 1. Lower frame rate (biggest impact)
ffmpeg -i screen.mp4 -vf "fps=8,scale=640:-1:flags=lanczos,palettegen" palette.png
# 2. Reduce colors (smaller palette)
ffmpeg -i screen.mp4 -vf "fps=10,scale=640:-1:flags=lanczos,palettegen=max_colors=128" palette.png
# 3. Use dithering mode (smaller but grainier)
ffmpeg -i screen.mp4 -i palette.png \
-lavfi "fps=10,scale=640:-1:flags=lanczos [x]; [x][1:v] paletteuse=dither=bayer:bayer_scale=3" output.gifConsider MP4 Instead
For web embeds and documentation sites that support video, MP4 is dramatically better than GIF for screen recordings:
ffmpeg -i screen.mp4 -c:v libx264 -preset slow -crf 28 \
-vf "scale=640:-2,fps=15" -an -movflags +faststart screen_demo.mp4A 5 MB screen recording GIF becomes a 200 KB MP4 with sharper text. Use the <video> element with autoplay, loop, and muted attributes for GIF-like behavior.
Platform-Specific Tips
macOS Retina Recordings
macOS records at Retina resolution (2x). A 1440x900 display records at 2880x1800. Always scale down:
ffmpeg -i retina_recording.mov \
-vf "fps=10,scale=720:-1:flags=lanczos,palettegen" palette.png
ffmpeg -i retina_recording.mov -i palette.png \
-lavfi "fps=10,scale=720:-1:flags=lanczos [x]; [x][1:v] paletteuse" output.gifWindows High-DPI
Similar issue — Windows records at the display's DPI scaling. A 1920x1080 display at 150% scaling records at 2880x1620. Scale down to 960 or 640px wide.
Mobile Screen Recordings
Phone screen recordings are tall (portrait). For horizontal GIFs, either:
- Record in landscape mode
- Crop to the relevant area:
-vf "crop=1080:600:0:200,fps=10,scale=540:-1:flags=lanczos"
Batch Conversion
Convert all screen recordings in a folder:
#!/bin/bash
for vid in *.{mp4,mov,webm}; do
[ -f "$vid" ] || continue
name="${vid%.*}"
ffmpeg -i "$vid" -vf "fps=10,scale=640:-1:flags=lanczos,palettegen" /tmp/palette.png
ffmpeg -i "$vid" -i /tmp/palette.png \
-lavfi "fps=10,scale=640:-1:flags=lanczos [x]; [x][1:v] paletteuse" "${name}.gif"
echo "Done: ${name}.gif ($(du -h "${name}.gif" | cut -f1))"
doneFAQ
What's the best frame rate for screen recording GIFs?
8-12 fps. Screen recordings mostly show UI interactions — mouse movements, typing, menu clicks — which don't need high frame rates. Reducing from 30fps (the typical recording rate) to 10fps cuts file size by 67% with minimal perceived quality loss. For smooth cursor movement, use 12-15fps.
Why does my screen recording GIF look blurry?
Two common causes: (1) Retina/HiDPI recording scaled too far down — try 720px instead of 480px. (2) Naive conversion without palette optimization. Always use the FFmpeg two-pass palette method for screen recordings.
How do I add a screen recording GIF to a GitHub README?
Upload the GIF to your repository or a hosting service, then embed with markdown: . GitHub has a 10 MB file size limit for rendered images. Keep GIFs under 5 MB for fast loading. Alternatively, use a <video> tag with an MP4 — GitHub renders these in READMEs too.
Can I edit the GIF after recording (trim, crop, add annotations)?
Yes. Trim with FFmpeg using -ss (start) and -t (duration) flags before converting. Crop with the crop filter. For annotations (arrows, text overlays), use tools like ScreenToGif (Windows) or Kap (macOS) which have built-in editors, or add overlays in FFmpeg with the drawtext filter.
What's the maximum GIF file size for common platforms?
| Platform | Max GIF Size | Recommended |
|---|---|---|
| GitHub (README render) | 10 MB | Under 5 MB |
| Slack | 20 MB upload | Under 5 MB |
| Discord | 8 MB (free), 50 MB (Nitro) | Under 8 MB |
| Jira | 10 MB default | Under 3 MB |
| Twitter/X | 15 MB | Under 5 MB |
Conclusion
The best screen recording GIF workflow is: record as MP4/MOV (not directly as GIF), then convert with FFmpeg's palette method. This gives you the highest quality output with the most control over resolution, frame rate, and file size.
For quick one-off conversions, use GifToVideo.net/video-to-gif — drop your screen recording, adjust settings, download the GIF. For regular use, set up a shell script or Automator action with the FFmpeg commands above.
If file size is a concern and your target supports video, consider using MP4 instead. A screen recording converted to MP4 is 90% smaller with perfectly sharp text.
Sources
- FFmpeg Documentation, "palettegen and paletteuse," retrieved 2026-05-18, https://ffmpeg.org/ffmpeg-filters.html#palettegen
- Apple Support, "How to record the screen on your Mac," retrieved 2026-05-18, https://support.apple.com/
- Microsoft Support, "Record your screen in Snipping Tool," retrieved 2026-05-18, https://support.microsoft.com/en-us/windows/snipping-tool
- GitHub Docs, "Attaching files," retrieved 2026-05-18, https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files
