Skip to content
Convert

Convert video online, without uploading it

Open a MOV, MKV, WebM, AVI or MP4 and export it as MP4, MKV, MOV or WebM. The conversion is a real re-encode done by FFmpeg inside this browser tab — the file never touches a server, there is no account and nothing is watermarked.

Drop your video here

or click to browse — MP4, MKV, MOV, WebM, AVI and more

Pick a conversion

Each page below has the editor pre-set to the right output and explains what is actually inside that kind of file, what changes on the way out, and when you would be better off not re-encoding at all.

Any other pairing works from the same Output format control — MKV to MOV, WebM to MKV, and so on. These six are simply the ones people ask for.

What "convert" means here

Two things happen, and it is worth separating them. The container changes — the wrapper that the extension names, which holds the streams and indexes them in time. And the streams inside are re-encoded: the video is decoded to raw frames and compressed again, and so is the audio.

For MP4, MKV and MOV output the new encode is H.264 video with AAC audio — the combination that plays on phones, TVs, browsers, editors and every social platform. For WebM output it is VP8 video with Opus audio, because those are the codecs the WebM container is defined around. Three of the four outputs are therefore the same encode in a different wrapper; WebM is the only genuinely different one. The formats page goes through the containers and codecs in detail.

Because the file passes through a filter graph, the same pass can also cut a section out, speed one up, cap the resolution or drop the audio. When you have queued no edits and only changed the format, resolution or mute setting, the apply button reads "Convert video"; with edits on the timeline it reads "Apply All Edits". Either way the video is encoded at most once. If mute is the only change and the output is MP4, MKV or MOV, the editor first tries a lossless stream copy and re-encodes only when the source codec cannot go in that container.

When a converter is the wrong tool

If both containers can hold the codecs your file already uses, you do not need to re-encode anything. MOV and MP4 are both members of the ISO base media family and both carry H.264 and AAC, so an H.264 MOV becomes an MP4 with a lossless remux that copies the streams into the new wrapper:

ffmpeg -i in.mov -c copy out.mp4

That takes seconds, loses nothing, and needs FFmpeg installed on a computer. The same trick works for MKV to MP4 when the MKV holds H.264 and AAC, and for MP4 to MOV almost always. It almost never works for anything involving WebM, whose codec set barely overlaps with MP4's in practice (VP9 and AV1 can technically sit in MP4, but almost nothing that produces a WebM does that), and it rarely helps with AVI, whose codecs are ones nothing modern plays even after rewrapping.

Almost everything this site does is a fresh encode: a cut, a speed change or a resolution cap runs through a filter graph, and a stream that is being filtered cannot be stream-copied. The single exception is the one described above — if mute is the only change you have made and the output container is MP4, MKV or MOV, the editor tries -c:v copy -an first. That applies even when the container is changing, so a mute-only MOV to MP4 really is a lossless remux, and it falls back to the full re-encode only when the source codec cannot live in the target container. The FFmpeg guide has the command-line versions; this guide explains the trade in full.

The honest notes

It is a lossy re-encode

Video is written with libx264 at the ultrafast preset and CRF 28 (or VP8 at roughly 1 Mbps for WebM). That is visually transparent on ordinary footage and not lossless. ultrafast spends bits to save time, so the output is sometimes larger than the input.

One engine download

The first conversion fetches the FFmpeg WebAssembly engine, roughly 32 MB. The browser caches it, so later runs start immediately. When SharedArrayBuffer is available the multi-threaded core is used and encodes run across all your CPU cores.

Everything happens in RAM

The input file, the engine and the output all live in the memory of the tab. That is why there is no size cap other than your device, and also why a very large file on a low-memory phone can fail where a desktop is fine.

No upload

The video is never transmitted. The page does load cookie-less analytics that see a page view and never the file — the privacy page states exactly what is recorded.

One video stream, one audio stream

Extra audio languages, subtitle tracks and metadata tracks are not carried through. Keep the original if those matter.

How it works walks through the pipeline and the privacy page for the editor lists what leaves your device and what does not.

Questions about converting video online

Is this a lossless video converter?
Almost never. A format change normally decodes the video and encodes it again — H.264 with AAC for MP4, MKV and MOV, VP8 with Opus for WebM — which costs one generation of lossy compression. There is exactly one lossless path: if muting the audio is the only change you make and the output is MP4, MKV or MOV, the editor stream-copies the video instead of re-encoding it, and falls back to a re-encode only if the source codec cannot go in that container. Otherwise, when both containers can carry the streams you already have, a remux with ffmpeg -c copy on the command line is lossless and faster, and each converter page says whether that applies.
Which formats can I convert between?
Input: MP4, MOV, MKV, WebM and AVI, plus most other containers FFmpeg can demux. Output: MP4, MKV, MOV or WebM. The six pages listed here are the common pairs; any input can be exported to any of the four outputs from the same control.
Is my video uploaded to convert it?
No. The file is read into the browser tab and FFmpeg WebAssembly does the work there. No copy of the video is sent over the network. The page loads cookie-less analytics that record a page view and never see the file.
Why is the converted file bigger than the original?
The encoder runs at the libx264 ultrafast preset, which spends bits to save CPU time — the right trade for an encoder running in a browser tab on your own machine. Sources encoded with HEVC or with a slower preset often come out larger in H.264. Capping the resolution at 1080p or 720p is the most effective way to bring the size down.
Is there a size or length limit?
No fixed one. The file is held in the tab's memory while it is converted, so the limit is the RAM of the device you are using. Long, high-resolution files also take proportionally long to encode; the multi-threaded engine uses all your CPU cores where the browser allows it.

Guides on re-encoding and remuxing

Working out why a file will not open in the first place, the command-line remux that avoids a re-encode, why a filtered stream cannot be copied, and what to expect from very large files.

All video editing guides