Convert to MP4
Turn MOV, WebM and other videos into MP4 that plays on most devices. Files never leave your device.
No upload · Processed in your browserMP4 · MOV · WebM · MKV · 3GP · AVI · WMV · FLV1 GB per file (recommended)As of 2026.09.30
Plays on most devices and messaging apps. When off, HEVC videos are not re-encoded; only the format changes.
How to use
- 1Drag and drop one video or pick it with [Choose files]. A preview appears along with the length, resolution and codecs
- 2Check “Maximize compatibility (convert to H.264)” (on by default), then press [Start]
- 3Play the result to check it, then save the MP4 with [Download]
The big number on the result card is the size of the result file, with the resolution, length and codecs below it. The result only changes the extension, as in clip.mov → clip.mp4. While processing, the progress and the estimated time left are shown.
You can add one video at a time. We recommend up to 1 GB on desktop and 100 MB on mobile. Going over the recommendation shows a warning, but you can still continue. Files over 4 GB are not processed. For AVI, WMV and FLV, which go through the fallback engine, we recommend up to 300 MB on desktop and 100 MB on mobile, and files over 700 MB are not processed.
- Example 1 · H.264 MOV to MP4
h264-aac.mov (1280×720, 10 s, H.264 + AAC) · 1.1 MB · default settings
Measured in Chromium on desktop · synthetic test video (test pattern + 440 Hz tone)
→ h264-aac.mp4 · 1.1 MB · 10.0 s · only the format changed, no re-encoding
- Example 2 · VP9 WebM to MP4
vp9-opus.webm (640×360, 10 s, VP9 + Opus) · 829 KB · default settings
Measured in Chromium on desktop · synthetic test video (test pattern + 440 Hz tone)
→ vp9-opus.mp4 · 742 KB · 640×360 · 10.0 s · re-encoded to H.264 + AAC
- Example 3 · AVI to MP4 (fallback engine)
sample.avi (640×360, 5 s, MJPEG + PCM) · 2.2 MB · default settings
Measured in Chromium on desktop · synthetic test video · AVI always goes through the fallback engine
→ sample.mp4 · 527 KB · H.264 + AAC · processed with the fallback engine (FFmpeg)
Example figures vary by file and device.
Options explained
- Maximize compatibility (convert to H.264)
- On by default. While it's on, video that isn't H.264 (HEVC, VP9 and so on) is re-encoded to H.264 so it plays on most devices and messaging apps. Turn it off and HEVC (H.265) video is moved into MP4 without re-encoding, which finishes sooner and keeps the quality as is, but the result may not open on devices or apps that can't play HEVC. When re-encoding, the resolution and fps stay the same, and audio that isn't AAC or MP3 is converted to AAC at 160kbps. If the video is H.264 and the audio is AAC or MP3, only the format changes, with no re-encoding.
- Metadata and rotation
- This isn't a setting you can turn on or off; it always works the same way. Metadata such as shooting location and device info is not carried over to the result. For videos shot in portrait, the rotation info is carried over as is when only the format changes, and applied to the pixels when the video is re-encoded.
Frequently asked questions
Are my videos sent to a server?
No. Converting happens inside this browser and your files are never sent off your device. To check it yourself, follow the steps on the How it works page.
Does converting to MP4 reduce quality?
If the video is H.264 and the audio is AAC or MP3, only the container is changed to MP4 without re-encoding, so quality stays the same and the result shows “Changed the format without re-encoding”. The test file h264-aac.mov (1.1 MB) had only its format changed, giving a 1.1 MB, 10.0-second MP4. Otherwise, the parts that need it are re-encoded (video to H.264 at the same resolution and fps, audio to AAC), and the result shows “Re-encoded to H.264”; in that case the quality may differ slightly from the original.
What happens to HEVC videos shot on an iPhone?
With “Maximize compatibility (convert to H.264)” on (the default), they're re-encoded to H.264. Turn it off and the HEVC video goes into the MP4 as is, without re-encoding. With the option off, the test file hevc.mov also became an MP4 that still contains HEVC (hvc1). Some devices and apps can't play HEVC, so if you don't know what the recipient uses, leave it on.
It says “Preparing the processing engine · about 31 MB, first time only”.
This appears when the file can't be handled by the browser's built-in video engine (WebCodecs): AVI, WMV and FLV files, or files that need re-encoding with a codec this browser can't handle (HEVC in some browsers, or browsers without WebCodecs). In that case a fallback engine (FFmpeg, WebAssembly) is downloaded once and kept in the browser cache, so unless the cache is cleared, it isn't downloaded again next time. What's downloaded is the processing program; your file isn't sent anywhere. On mobile data, we recommend connecting to Wi-Fi first.
It says “This video's codec isn't supported”.
The video was saved with a codec that neither of this tool's engines (the browser's built-in engine and the fallback engine) can handle. Save it again in a different format such as MP4 from the camera app or editing app you used, then add it.
Can I convert a video that has no sound?
Yes. A video without an audio track becomes an MP4 without sound; it isn't treated as an error.
Related tools
How it works · Engine · Notes
- Processed in: this browser (your device)
- Engine: Mediabunny (MPL-2.0) · WebCodecs (built into the browser) (—) · Mediabunny AAC encoder (LGPL-2.1-or-later) · FFmpeg (ffmpeg.wasm, fallback) (GPL-2.0-or-later)
- Converting runs inside this browser with Mediabunny and the browser's built-in video engine (WebCodecs), and files are not sent to a server.
- AVI, WMV and FLV files, and codecs this browser can't handle, are processed with a fallback engine (FFmpeg, WebAssembly, about 31 MB) that is downloaded the first time and kept in the browser cache.
- If the browser has no built-in AAC encoder, audio is encoded with the Mediabunny AAC encoder (WebAssembly).
- Metadata such as shooting location and device info is not carried over. Rotation info is kept when only the format changes and applied to the pixels when re-encoding.
- As of 2026.09.30
- Changelog: 2026.09.30 First release