How it works
No server, no account, no queue. Here is what actually happens when you press the button.
Where the encode runs
Nothing is uploaded and nothing is encoded on a server. Your browser decodes the file with its own video pipeline, a canvas redraws each frame at the preset size with the preset’s filter chain applied, and the browser’s own WebCodecs encoder compresses the result. The MP4 container is assembled in the same tab.
There is no engine to download. Nothing on this page fetches a binary, a model or a codec: the decoder, the drawing layer and the encoder are all parts of the browser you already opened. That is also why the first frame may pause for a moment — the decoder has to spin up — and why there is no progress bar for "loading".
Why the wait scales with frame count
Frames have to be decoded, redrawn and re-encoded in order, so time tracks the number of output frames rather than the length or sharpness of the source in isolation. A 12 fps preset over a minute of video is 720 frames. A 20 fps preset over the same minute is 1,200 frames for the same minute of watching.
Trim first if you only need a section. Encoding 30 minutes and cutting afterwards costs the full encode; trimming costs seconds. Keep the tab in the foreground too — browsers throttle background tabs, and a throttled tab makes the encode crawl.
What it refuses to do
Files over 2 GB, longer than 30 minutes, or above 1080p are stopped before encoding starts — you get a message, not a failure at 80%. Anything above 1080p is scaled down and we say so.
Mobile browsers are not supported in this release: the frame pipeline needs video memory and a hardware encoder that phone browsers will not give a background tab.
The numbers we publish
Every preset states its resolution, frame rate and target bitrate. No vague "quality" percentage. If a number changes, it changes on this page too.
Bitrate is a target, not a guarantee: the encoder came in 4–14% above it in our tests, and short clips drift most because the first keyframe has nowhere to spread its cost. Output size estimates use 1.15× the target for that reason.
| Frame pipeline | Canvas 2D · browser-native filter chain |
|---|---|
| Encoder | WebCodecs · H.264 |
| Presets matching spec | 5 of 5 — size, frame rate, frame count |
| Bitrate accuracy | 4–14% above target |
| Size estimate assumes | 1.15× target |
| Formats accepted | anything the browser can decode |
| Download for any input | none |
| Upload | none — file stays in the tab |