Convert MP4 to WebM
Convert MP4 to WebM with VP8 video and Opus audio for HTML5 video. Encoded by your own CPU — no upload, no queue, no daily limit.
- 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.
What WebM buys you
WebM is a Matroska-derived container built for the web, holding VP9 video and Opus audio. At matched perceived quality, VP9 files usually land 25-35% smaller than H.264, and Opus beats AAC comfortably at low bitrates. For a hero video, a looping background or an autoplaying product clip, that is bandwidth you are not paying for and load time your visitors are not waiting through.
The cost is encoding time. VP9 is far more expensive to compress than H.264 — five to ten times, and in WebAssembly there is no hardware encoder to fall back on. This page is the right tool for a 30-second loop and the wrong tool for a feature film.
Serve both, let the browser choose
The standard pattern is to offer WebM first and MP4 as a fallback. Browsers pick the first source they can play, so modern ones take the small file and everything else takes the safe one:
<video controls playsinline poster="poster.jpg">
<source src="clip.webm" type="video/webm">
<source src="clip.mp4" type="video/mp4">
Your browser cannot play this video.
</video>
For a silent background loop add muted, loop, autoplay
and playsinline — every mobile browser requires the video to be muted before it
will autoplay at all.
Browser support in practice
| Browser | VP9 in WebM | Notes |
|---|---|---|
| Chrome, Edge, Opera | Yes, for years | Hardware decoding on most recent machines |
| Firefox | Yes, for years | — |
| Safari on macOS | Yes, from Safari 14 | Big Sur and later |
| Safari on iOS | Yes on modern iOS, patchy before | Always keep the MP4 fallback |
| Smart TVs, consoles, older Android | Unreliable | MP4 remains the safe format |
Quality settings, and why there is no size box
This page encodes at a constant quality (CRF) rather than a fixed bitrate. CRF gives every frame as many bits as that frame needs: a static talking head consumes few, a handheld action shot consumes many, and the perceived quality stays even throughout. The trade-off is that the final size cannot be predicted before the encode finishes.
The three presets map to VP9 CRF 26 (high), 33 (balanced) and 40 (small). If you need to hit a specific number of megabytes instead, compress video works to a target bitrate, and resize video is usually the bigger lever anyway — halving the dimensions cuts roughly three quarters of the pixels.
What about AV1?
AV1 is better still — around 30% smaller again than VP9 — and this build can read it, but encoding AV1 in WebAssembly is slow to the point of being impractical for anything but a few seconds of footage. Rather than ship a feature that would time out on real files, it is left out, and this page says so instead of quietly offering it.
Questions
Is WebM smaller than MP4?
Not here. This page encodes WebM with VP8, which needs about the same size as H.264 for the same quality. Use WebM when a player or site asks for it; for the smallest file, use MP4.
Why does this take so much longer than converting to MP4?
Every frame is re-encoded to VP8 on your CPU, with no hardware acceleration. Expect about real time for 720p: a one-minute clip takes about a minute. Trim first if you only need part of it.
Which browsers play WebM?
Chrome, Edge, Firefox and Opera have played VP8 WebM for years, and current Safari plays it too. Older iOS devices and smart TVs are the gap, so list WebM first and MP4 second in a <video> element.
Can I control the file size directly?
This page uses constant-quality (CRF) encoding, which fixes the quality and lets the size land where it lands. If you need to hit a specific size, use the compress-video tool instead, which targets a bitrate.