Your files stay on your Mac.
Convertessa runs your MP4 through FFmpeg and writes an animated GIF: every frame remapped onto a 256-colour table, the audio dropped, the timing rewritten as per-frame delays in hundredths of a second, and the animation set to loop. Because GIF's compression is lossless, no quality control appears — what the palette can hold is what you get. Batches of clips convert in one queue.
Converting video to GIF is a technical downgrade in every dimension, and people do it anyway, for one good reason: a GIF plays inline everywhere — chat, a README, an email, a slide deck — with no player, no controls and nobody being asked to press play. It is worth knowing precisely what you trade for that.
An MP4 frame can hold millions of colours. A GIF frame indexes into a table of at most 256. FFmpeg builds a colour table for the clip and maps every frame onto it, so gradients, skin tones and shadows — where hundreds of near-identical shades used to live — come out as bands or as a dither pattern standing in for shades that no longer exist. The LZW compression applied afterwards is mathematically lossless, so nothing is discarded a second time and no quality slider appears for this target. The palette is the entire budget. Dithering trades banding for noise, and noise inflates the file, because LZW works by compressing runs of identical pixels.
GIF has no audio track, so whatever the MP4 carried is dropped at conversion. Subtitle tracks, chapter markers and rotation flags go with it — GIF is a picture format that learned to animate, not a media container.
Each frame carries its delay in hundredths of a second. 25 fps divides into that cleanly at 4 cs per frame; 30 fps does not, since 3.33 cs has to round, and the animation drifts slightly against the original. Browsers also clamp very short delays, typically showing anything under 2 cs for 10 — which is why a high-frame-rate clip can end up playing in slow motion.
Then there is size. GIF has nothing resembling modern interframe compression, so a few seconds of 1080p becomes tens of megabytes. Convertessa converts whole files and does not trim or crop, so shorten the clip before you convert it.
Cut the MP4 down to the seconds that matter in an editor before you start. Convertessa converts whole files, and in a format without real interframe compression every extra second costs megabytes.
Select GIF. No quality control appears here, because GIF's LZW compression is lossless — the 256-entry palette, not a slider, is what decides how close the animation looks to the video.
Run it, then look hard at skies, painted walls and faces in the result. Those are where 256 colours run out and show as banding; flat UI screen recordings usually come through indistinguishable.
Images, audio, video, documents, archives, eBooks and fonts — all converted natively, right on your Mac.
Pick a format you have — see everything Convertessa can turn it into.
Convert hundreds of files at once with per-type group defaults and individual overrides.
First-class support for HEIC, AVIF and WebP — encode and decode, both ways. Read JPEG XL and a dozen more modern formats too.
Drop files anywhere on the window. Native, instant, and exactly what you’d expect on a Mac.
Dial in compression, resolution and bitrate. Keep originals pristine or shrink for sharing.
Never overwrite a file by accident. Convertessa appends safe suffixes automatically.
Every job is logged locally. Re-run a previous conversion or revisit recent outputs in a click.
Bundle your converted files straight into a single ZIP, TAR or 7z — packaged and ready to share the moment a job finishes.
Right-click any file in Finder and choose Convert. A Quick Action handles it on the spot — no need to open the app first.
Shrink Convertessa to a tidy mini window that tucks into a corner — just a drop zone and a format picker for quick, one-off conversions.
No cloud. No account. No upload. Every conversion happens entirely on-device, using the power already in your Mac. What you convert is nobody’s business but yours.
Script conversions, wire them into your build, or batch a folder from the terminal. The same engine, no GUI required.
Read the full CLI documentation →Shrink Convertessa down to a small, focused window — drop, convert, done, with your recent conversions one click away.
macOS 14+ · Apple Silicon & Intel
New formats, new features, and fixes — every release, on the record.
Because GIF predates every technique that makes video small. H.264 describes a frame as a set of motion vectors pointing at the previous one; GIF stores each frame as indexed pixels with only crude savings between them. A five-second 1080p clip that occupies 2 MB as MP4 can easily reach 30 MB as GIF. Shorter clips and flatter content — screen recordings, line art, anything with large areas of one colour — stay reasonable; handheld footage of foliage does not.
Nowhere — GIF has no audio track to put it in. The 1989 specification defines an image format with animation extensions, and sound was never part of it. If the clip only works with its audio, GIF is the wrong destination and you want a short MP4 or WebM instead. This is the usual reason a converted reaction clip falls flat: the joke was in the line, not the picture.
Convertessa writes looping GIFs, which is the near-universal convention: the loop count lives in a small application extension block that players read once. There is no switch exposed to make it play a single time. Practically, looping is what viewers expect from the format — a play-once GIF reads as broken, since nothing tells the viewer it finished.
MP4 almost never carries an alpha channel in the first place, so the output is fully opaque. Even where a source had transparency, GIF could only express it crudely: its transparency is a single palette entry marked see-through, so a pixel is either completely opaque or completely invisible. There is no partial alpha, which is why GIF logos on coloured backgrounds have those jagged fringes.
Frame delays are stored in hundredths of a second, so anything that does not divide into 100 has to round. 30 fps wants 3.33 cs and gets 3 or 4, which drifts over a long clip. Browsers add a second effect: delays below about 2 cs are clamped upward, historically to 10 cs, so very fast source material can play back conspicuously slowly. Clips at 25, 20 or 10 fps divide cleanly and keep their timing.
No. The flag applies only to lossy targets and is ignored for lossless ones, so this is harmless but pointless:
convertessa clip.mp4 --to gif --quality 90
The honest version is just:
convertessa ./clips/*.mp4 --to gif -o ~/Desktop/gifs
What governs how the output looks is the 256-colour palette, which is a property of the format rather than a setting.
Two to six seconds for anything shared in a chat window or an issue tracker. Ten seconds of screen recording is usually fine, because flat interface colours compress well and stay inside the palette. Beyond fifteen seconds of camera footage you are producing a file large enough that services silently refuse it or transcode it back to video behind your back — at which point you may as well have shipped the MP4.