Screen recording to GIF. Free, private, in your browser
Convert a screen recording to an animated GIF in your browser. Nothing is uploaded. The file stays on your machine.
Best for: Bug reports, internal demos, UI walkthroughs from Loom, CleanShot, OBS, QuickTime, or Xbox Game Bar
Settings: 12-15 FPS, 480 px wide (720 px if text matters), Better (2-pass) for gradients.
Watch out: Leaving the recording at full resolution and full length. Trim hard, keep it focused on one task.
Pick a video
Drop a video here, or click to choose.
.mp4 · .mov · .webm · .mkv · .m4v · .avi
Quick answers
How to turn a screen recording into a GIF
Choose the recording, trim to the exact interaction you want to show, start around 12-15 FPS, then download the GIF. Nothing is uploaded.
How to do it
Drop in the recording, cut away the setup and dead air, preview the clip, then convert and save the GIF. Short clips are easier to share and much faster to encode.
Why use localgif.app
Bug reports, internal demos, and unreleased UI walkthroughs stay on your machine. The conversion runs entirely in the browser with no upload, no watermark, and no sign-up.
Common problems
Screen recordings get huge fast because they are often long and full-resolution. Trim hard, keep the clip focused on one task, and reduce width before you lower quality too aggressively.
Suggested settings
Start at 12-15 FPS. Use 480 px wide for most bug reports, 720 px if text would be too small, and the Better (2-pass) option for gradients or dense UI.
Need a smaller file? Read how to reduce GIF file size or how to pick the right FPS.
Turning screen recordings into GIFs
Most screen recorders save .mp4, .mov or .webm: Loom and CleanShot export MP4, QuickTime on macOS gives you MOV, OBS hands you MP4 or MKV, and Chrome's built-in recorder produces WebM. Windows' Xbox Game Bar also saves MP4. Anything in that list drops in here without a conversion step.
A few tips that are specific to UI recordings: text and cursor motion survive lower FPS fine (10-15 is usually plenty), but don't starve the width. If the recording shows code or small UI controls, keep the width at 480-600 px so it's still legible. If the clip is long, trim tight first; the GIF size grows linearly with duration.
Because the whole thing runs in your browser, early-product demos and internal tool recordings never touch a server. No "Upload to our free tier to convert" prompt, no watermark, no retention policy to worry about.
How it works
- Pick a video. Drag one in or click the dropzone. MP4, MOV, WebM, MKV, M4V and AVI all work.
- Trim. Drag the two handles on the range slider to pick the exact clip you want. Only the trimmed portion is converted, which keeps things fast.
- Tune the output. Choose FPS and width, and pick Better (2-pass, custom palette) or Smaller (1-pass, default palette).
- Convert and download. The GIF is built in your browser and handed to you as a download. No server round-trip.
Under the hood this runs FFmpeg.wasm (the real FFmpeg compiled to WebAssembly) directly inside the page.
Why in-browser?
Most video-to-GIF tools ask you to upload your clip to a server you know nothing about. For anything sensitive (internal screen recordings, private moments, early product demos) that's a lot of trust for a free tool.
localgif.app never uploads your file. FFmpeg runs as WebAssembly inside the page, reads the file through the browser's file API, and writes the GIF straight back to you. You can disconnect your network after the page loads and it still works.
To get the fast multi-threaded build of FFmpeg we set the Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy headers so the browser grants us cross-origin isolation. Older browsers or misconfigured setups fall back to a slower single-threaded mode automatically.
FAQ
Is my video uploaded anywhere?
No. Your file never leaves your device. Conversion runs entirely in your browser using FFmpeg compiled to WebAssembly, so there is no server to upload to.
Which video formats can I convert?
MP4, MOV, WebM, MKV, M4V and AVI all work in most browsers. Anything your build of FFmpeg can decode will work, since the same FFmpeg code runs inside the page.
What's the maximum file size?
There is no hard limit, but everything happens in your browser's memory. A few hundred MB is usually fine on desktop; mobile browsers have tighter memory caps. Trimming to only the clip you need is the easiest way to stay fast.
Why is the GIF so large compared to the video?
GIF is an old, lossless, 256-color-per-frame format with no real inter-frame compression. A 5-second 1080p clip that is 2 MB as MP4 can easily be 20 MB as GIF. To shrink it, lower the FPS, reduce the width, and trim tighter.
What FPS and width should I pick?
15 FPS and 480 px wide is a good default for social and chat apps. Drop to 10 FPS if the motion is slow or you want a smaller file. Go up to 24-30 FPS only if the motion genuinely needs it.
Does it work offline or on mobile?
After the first load the page and FFmpeg core are cached, so conversion works without a network connection. It runs on mobile browsers, but memory is more limited, so keep clips short and widths modest.
Why does my browser need to be up to date?
Multi-threaded WebAssembly needs cross-origin isolation (COOP/COEP headers) and SharedArrayBuffer. Older browsers fall back to a slower single-threaded mode. A current Chrome, Edge, Firefox or Safari 16+ gets the fast path.
Is it really free? Any watermark?
Yes, free. No sign-up, no watermark, no usage limit. There is no server to pay for because nothing is uploaded.