Convert video files in your browser
Convert MP4, WebM, MKV, MOV and AVI video to MP4 (H.264), WebM (VP8) or GIF with quality and resolution presets. Private, no upload.
- Runs in your browser
- Files are never uploaded
- Free, no account
First use downloads the 10 MB video engine from this site. After that it is cached and works offline. It is WebAssembly served from onthisdevice.com — no third-party CDN — and your file is still processed entirely on your own device.
How to convert a video file
- Drop your video onto the box above, or click it to browse. MP4, MOV, MKV, WebM, AVI, MPEG and 3GP all work.
- Choose an output format: MP4 (H.264) for something that plays everywhere, WebM (VP9) for a smaller file, or GIF for a silent animation.
- Pick a quality target and, if you want a smaller file, a lower resolution. Videos are only ever scaled down.
- Press convert. The first run downloads the FFmpeg engine once (a 10 MB download); after that it is cached and starts instantly.
- Preview the result in the page and download it. Nothing was uploaded at any point.
Which format and codec should you choose?
A video file has two parts: the container (MP4, MKV, WebM — the box that holds the streams) and the codec (H.264, VP9, AV1 — how the pictures are compressed). Most compatibility problems come from the codec, not the container.
| Output | Codecs | Plays on | Encode speed | Best for |
|---|---|---|---|---|
| MP4 | H.264 + AAC | Everything since about 2008 | Fast | Sharing, editing, uploading anywhere |
| WebM | VP9 + Opus | All modern browsers; poor native support on older TVs and iOS apps | 5-10× slower | Web pages where bandwidth matters |
| GIF | 256-colour palette, no audio | Literally everything, including email | Fast | Short silent loops, documentation, chat |
What the quality setting actually does
Both H.264 and VP9 are driven here by CRF (constant rate factor). Instead of forcing a fixed bitrate, CRF fixes the perceived quality and lets the bitrate float: a static interview scene consumes few bits, a handheld action shot consumes many. That is why the output size cannot be predicted exactly before encoding.
| Preset | H.264 CRF | VP9 CRF | Result |
|---|---|---|---|
| High quality | 18 | 26 | Indistinguishable from the source on close inspection |
| Balanced | 23 | 33 | The usual choice — small file, no obvious artefacts |
| Small file | 28 | 40 | Visible softening in detailed or fast-moving shots |
Why a browser-based converter
Conventional online converters upload your file to a server, convert it there and hand back a download link — which means your footage sits on someone else's disk, usually behind a queue and a file-size cap. This page runs the same FFmpeg code as those servers, compiled to WebAssembly, inside your own tab. The trade-off is honest: your laptop is slower than a rented encoding box, so long videos take longer here. In exchange, the file never leaves the device, there is no size limit beyond your own memory, and the tool keeps working on a plane.
Practical limits
- Memory: WebAssembly in a browser is capped at roughly 2 GB, and both the input and the output live in it. Files up to about 500 MB are comfortable.
- Speed: the single-threaded FFmpeg core is used so no special server headers are needed. Expect roughly 0.3-1× real time for H.264 on a modern laptop.
- Hardware encoders: browsers do not expose them to WebAssembly, so encoding is pure CPU. Choosing a faster preset is the main lever you have.
Questions
Is my video uploaded anywhere?
No. A full FFmpeg build compiled to WebAssembly runs inside this tab, so the file is decoded and re-encoded by your own CPU. Nothing is sent to a server, and the tool keeps working with your network switched off.
Why does the first conversion pause before starting?
The first run downloads the FFmpeg engine (a 10 MB download) once. It is then cached in your browser, so every later conversion — on any tool on this site — starts immediately.
Which output should I pick, MP4 or WebM?
MP4 with H.264 plays on essentially every device, encodes fastest and gives the smallest file. Pick WebM (VP8) only when a site or player asks for it.
How big a file can I convert?
The browser sandbox gives WebAssembly about 2 GB of working memory, and both the input and the output live in it. Files up to roughly 500 MB are comfortable; beyond that, trim or downscale first.
What does the CRF quality setting do?
CRF is a constant-quality target rather than a fixed bitrate: every frame gets as many bits as it needs. Lower numbers mean better quality and bigger files — 18 is visually lossless, 23 is the default, 28 is noticeably compressed.