The web's own video format
WebM exists because of a licensing fight. Google bought the codec shop On2 in 2010, opened up VP8, and wrapped it in a slimmed-down Matroska container so the web could have video without H.264's patent tolls. VP9 and AV1 followed into the same box. Browsers embraced it, and it quietly became the format web software records to.
So a .webm in your downloads folder has a short list of likely parents: OBS Studio set to WebM output, Chrome's screen capture or a recorder extension, a MediaRecorder blob your own JavaScript wrote to disk, or an export from a meeting or Loom-style tool. Efficient, royalty-free, and everywhere in dev workflows.
It just doesn't paste. GitHub comments, Notion pages, and most chat apps won't inline a WebM, and a GIF sails through all of them. Drop the file here and make the swap without the recording leaving your machine.
Local processing, which matters for what WebM tends to contain
Be honest about what's in your WebM files: an unreleased feature, an internal dashboard, a bug repro with customer data in the corner. This converter decodes and re-encodes in the page's own memory, on your hardware. No byte of the recording is transmitted, no account or email is collected, and no watermark is added. Disconnect after the page loads and the conversion still runs to completion. There's no queue, either; decoding starts the moment the file lands, because nothing has to crawl up your uplink first.
The no-upload explainer spells out exactly what stays local, for anyone who needs to show a security team.
Driving the converter like you mean it
The timeline is built for precision rather than vibes. Here's the loadout:
- Trim. Handles are labeled in seconds plus frames, and the arrow keys step a selected handle one frame per keystroke. Start the loop the instant the menu opens; end it before the cursor drifts.
- Crop. 16:9 for a landscape app demo, 9:16 for a mobile capture, 1:1 or 4:5 for social, 4:3 for older sources. All locked, so nothing warps.
- Frame rate. 12 to 15 fps carries UI motion convincingly. Drop to 10 for slow, deliberate clips; spend more only on genuinely fast movement.
- Scale. A 1080p OBS capture doesn't need its pixels. Downsized so the long side sits between 600 and 800 px, it reads identically at GIF color depth and weighs a fraction as much.
- Palette. Flat interfaces and text hold at 64 to 128 colors with dithering on. Game footage and camera video want the top of that range.
A running estimate of the output size updates while you tune, so every tradeoff gets made against a real number instead of a render-and-see guess.
Format quirks worth knowing before you hit encode
- Variable frame rate. MediaRecorder and most screen recorders write VFR, where timing drifts with whatever changed on screen. You choose one steady output rate for the GIF, which is what the format needs anyway; 12 or 15 evens out a clip that feels lumpy.
- Alpha goes away. A capture with transparency comes out opaque. See-through regions land on a solid background, so don't plan around a floating overlay surviving.
- Sound is discarded. GIFs are mute by definition. Whatever audio the WebM carried simply doesn't come along.
- Codec coverage. VP8 and VP9 decode everywhere modern, so the common cases open without fuss. AV1 inside WebM is the newer arrival, and older browsers can balk at it; a current Chrome or Edge is the safe bet there.
The preview surfaces every one of these before you commit, which beats discovering them after a render finishes. Thirty seconds of scrubbing saves a re-encode.
Where a WebM-born GIF usually lands
Most of this traffic is developers documenting something. Headed for a repo? The GitHub README guide covers sizing that reads well on both light and dark themes. If the source came out of a screen recorder specifically, the screen recording page has advice tuned for captured UI.
Sizing targets from experience: around 2 MB keeps a GIF snappy inline in chat or a PR review, up to about 5 MB is tolerable in a slide deck that never has to travel, and anything heavier deserves a second pass through the trim before it ships anywhere.