Convert a video
Change the container and codec of any video without sending the file anywhere.
Your file
Drop a file here, or click to choose
It stays on this device. Nothing is sent anywhere.
Settings
Which format should you pick?
| Format | Codecs | Use it for |
|---|---|---|
| MP4 | h.264 + AAC | The safe default. Plays on every phone, TV, browser and editor. |
| WebM | VP8 + Opus | Web pages and chat apps that prefer an open format. Plays in every current browser. |
| MKV | h.264 + AAC | Archiving. Holds multiple audio and subtitle tracks. |
| MOV | h.264 + AAC | Final Cut and older Apple workflows. |
| AVI | MPEG-4 + MP3 | Legacy players and some TV boxes that predate h.264. |
| OGV | Theora + Vorbis | Fully patent-free delivery. Rarely needed now. |
Notes on speed
Everything runs on your own CPU, in one thread, so a long file takes real time. h.264 (MP4, MKV, MOV) is the fastest encoder here by a wide margin. WebM and OGV are slower. If you are converting something over ten minutes, start by dropping the resolution.
Why WebM here is VP8, not VP9
VP9 would produce smaller files, but the VP9 encoder in this WebAssembly build of FFmpeg crashes a frame or two into an encode, a known limitation of running libvpx without threads. Rather than hand you a tool that fails halfway through, WebM output uses VP8, which is stable and considerably faster. Reading VP9 files works perfectly, so WebM to MP4 handles anything you throw at it.
Common questions
Is there a file size limit?
No hard limit, but your browser has to hold the input and output in memory. Files under about 2 GB are comfortable on a desktop; phones run out of room much sooner.
Does the video get watermarked?
No. This is plain FFmpeg with no post-processing, so the output has nothing added to it.
What does the quality slider actually do?
It sets the constant rate factor (-crf). Lower numbers keep more detail and produce bigger files. 18 is visually lossless, 23 is the h.264 default, and anything past 30 starts to look soft.
Why is WebM slower and larger than MP4?
WebM output uses VP8, which is less efficient than h.264 and than VP9. VP9 encoding is not available because it crashes this WebAssembly build. Use MP4 unless you specifically need an open format.