FFMPEG
ToolsConverterBlogAboutContact

CONVERTMP4FREE

FFmpeg runs 100% in your browser via WebAssembly. No file upload. No signup. No size limit. Private by design.

↓Drop your file below

// Converter

LOADING ENGINE

Initialising…

Why This

01

No Upload

FFmpeg runs via WebAssembly in your browser tab. Your file never touches a server.

02

Real FFmpeg

Not a wrapper. Actual FFmpeg compiled to WASM — every codec, every flag.

03

Free Forever

No account. No watermarks. No throttling. No subscription.

04

Four Formats

MP4 → MKV, AVI, MOV, or re-encoded MP4. Stream copy = instant, lossless.

05

Custom Args

Pass any FFmpeg CLI argument. Full control over codec, bitrate, filters.

06

Live Logs

Watch FFmpeg output stream in real time. See exactly what is happening.

How It Works

  1. 01

    Drop File

    Drag and drop your MP4 file, or click to browse. Stays on your device.

  2. 02

    Choose Format

    Select MKV, AVI, MOV, or re-encoded MP4. Add custom FFmpeg args if needed.

  3. 03

    Convert

    Hit CONVERT. Watch the logs. File downloads automatically when done.

Formats

ExtFull NameMIMEBest For
.mkvMatroska Videovideo/x-matroskaBest for archiving. Supports any codec, multiple audio tracks, subtitles, chapters.
.aviAudio Video Interleavevideo/x-msvideoMaximum compatibility with older players and legacy software.
.movQuickTime Movievideo/quicktimeNative for macOS and iOS. Best for Apple ecosystem.
.mp4MPEG-4 Part 14video/mp4Re-encode with custom settings. Universally compatible.

// Long read

What this converter actually does

A useful explanation of how browser-based video conversion works, why we use FFmpeg, when each common container format makes sense, and answers to the questions readers ask most often. If you only came here to convert a file, skip back up — none of this is required reading.

How MP4 conversion works in your browser

When you drop a video onto the converter at the top of this page, nothing leaves your device. The browser reads the file into memory using the standard File API, hands it to a WebAssembly build of FFmpeg, and waits. FFmpeg parses the container, pulls out the video and audio streams, and either copies them into a new container as-is or re-encodes them into a different codec — the same thing the command-line version of FFmpeg does, executed by the same C code, just compiled to a binary format your browser can run.

Most format changes — MP4 to MKV, MOV to MP4, MKV to MP4 — are container swaps, not codec changes. The video data inside is usually already H.264 or H.265. In that case FFmpeg performs a stream copy: it lifts the encoded video and audio out of one container and drops them into another without touching the actual frames. This is almost instantaneous, even on long files, and produces output that is bit-identical to the source in everything but its wrapper.

Re-encoding is different. If you ask for compression, a resolution change, or a different codec (say, H.265 to H.264 so an older device can play the file), FFmpeg has to decode every frame and encode every frame anew. That work is bounded by your CPU. A modern laptop will re-encode a ten-minute 1080p clip in a few minutes; a phone will take longer. Either way it happens locally, which is why a slow conversion never freezes for you — you can watch the FFmpeg log scroll in real time and see exactly what it is doing.

Why client-side conversion is more private

The conventional model for "free online tools" is server-side: you upload a file, a server processes it, the server sends back a download link. The site monetizes by showing ads while you wait, and many also retain uploads to train models, sell to data brokers, or simply hold for as long as their privacy policy says they can. Even the well-intentioned ones are a breach waiting to happen — once a file is on a server you do not control, the question is no longer if it can leak but whether anyone bothers.

Client-side conversion eliminates the question entirely. There is no upload endpoint, no server-side queue, no temporary file directory holding your video while it waits its turn. The FFmpeg.wasm binary is downloaded once to your browser cache, and from then on every conversion happens inside the same browser tab that loaded this page. You can verify it: open your browser's developer tools, switch to the Network tab, convert a file, and watch — no outbound request carries your video. This works for a one-megabyte phone clip and for a forty-gigabyte raw capture equally well.

MP4 vs MKV vs MOV vs AVI — when to use which

These four names refer to containers, not codecs. A container is a wrapper that bundles a video stream, one or more audio streams, optional subtitle tracks, and metadata into a single file. The actual compression — H.264, H.265, AV1, VP9 — lives inside the container. That is why you can have an MP4 and an MKV with identical video and audio quality and nearly identical file size: the wrapper is mostly bookkeeping.

MP4 is the universal format. Every phone, every browser, every social platform, every TV from the last decade accepts it. If you are uploading to YouTube, posting to Instagram, sending a video by message, or embedding into a webpage, MP4 is the right answer almost every time. Its downsides are mostly invisible to people who just want a video to play: it has limited support for multiple audio tracks and subtitle streams compared to MKV, and it is encumbered by a patent pool that some open-source projects try to avoid.

MKV (Matroska) is the format for keeping things. It is open, royalty-free, and accepts almost any codec combination. It can carry a dozen subtitle tracks, a dozen audio languages, chapter markers, and attached fonts in one file. If you are archiving a movie for a home media server, ripping a disc, or storing footage long-term, MKV is the better wrapper. Its only meaningful downside is that some consumer devices refuse to play it.

MOVis Apple's QuickTime container, and the default for video shot on iPhones and edited in Final Cut. On Apple hardware it is interchangeable with MP4 for most purposes — the two are technically siblings — but on Windows, Android, and the open web, MOV sometimes runs into compatibility quirks. Converting MOV to MP4 is usually a no-op stream copy and the right move whenever the file needs to leave the Apple ecosystem.

AVI is the old container, the one your dad used. It was the dominant format on Windows in the 1990s and early 2000s, and it shows its age in how it handles modern codecs, variable frame rates, and B-frames. Convert out of AVI when you can. The only good reason to convert into AVI is to placate a piece of legacy software or hardware that refuses to read anything else.

What FFmpeg is and why we use it

FFmpeg is the engine. It is an open-source project, started in the year 2000, that has quietly become the substrate of the entire video industry. When you watch something on YouTube, a server somewhere ran FFmpeg to transcode the upload. When VLC plays your file, it leans on FFmpeg's libraries to decode it. When Chrome plays an HTML5 video, the same libraries are in the chain. It is one of those pieces of free software whose absence would visibly break the modern internet.

We use FFmpeg here for two reasons. First, it can read and write essentially any format that has ever existed — there is no edge case you can throw at it that has not already been handled by someone else with the same problem. Second, the FFmpeg.wasm project compiles it to WebAssembly so it can run in a browser without any installation. That means we get professional-grade conversion for free, and you get it without having to download anything beyond a web page. The only thing this site does on top of FFmpeg is wrap it in a UI and make a few sensible defaults easy to choose.

Frequently asked questions

Is anything sent to a server when I convert a file?

No. The page itself loads from a server (this is the web), but your video file is read locally, processed locally, and saved locally. You can confirm this in your browser's Network tab.

Why is the first load slow?

The FFmpeg WebAssembly binary is roughly thirty megabytes. The first time you visit, the browser downloads it once and caches it. Subsequent visits skip the download entirely and start instantly.

Will the converter run on my phone?

On Android with Chrome or Firefox, yes. On iOS, support is more limited because Safari has historically restricted the WebAssembly threading features FFmpeg uses. Container swaps tend to work; heavy re-encoding may not.

Why is converting from H.265 to H.264 slow?

Because it is genuinely hard work. Every frame has to be decoded from one codec and re-encoded into another. There is no shortcut. Desktop FFmpeg using a hardware encoder is faster, but in the browser you are limited to software encoding, which means it is bounded by your CPU.

What is the file size limit?

There is no imposed limit. The practical ceiling is your browser's memory, which is usually a few gigabytes. Files up to about 2 GB are routine; multi-gigabyte files are possible if you close other tabs and have enough free RAM.

Can I pass custom FFmpeg arguments?

Yes. The converter exposes an advanced field where you can enter any FFmpeg argument string. If you know the CLI flag you want — -crf 23, -vf scale=1280:-2, -c:v libx264 — it works the same way it does on the command line.

Does converting reduce quality?

For container changes (MP4 ↔ MKV, MOV → MP4 when the codec is already H.264) the answer is no — stream copy preserves every bit. For re-encoding, quality depends on the parameters you choose. A CRF value of 18 produces visually lossless output; 28 is noticeably compressed; 35 is for when you need a file to be small at the cost of looking it.

How do I get help if something goes wrong?

Email the address on the contact page. A short description of the source file, the chosen output format, and what the FFmpeg log said is usually enough for me to figure out what happened. There are also longer guides in the blog that may already answer your question.

FAQ

Is this free?
Yes. No signup, no limits, no watermarks. Convert as many files as you want, forever free.
Does my video get uploaded?
No. Conversion happens entirely in your browser using FFmpeg WebAssembly. Your file never leaves your device — there are zero server uploads.
What video formats can I convert?
You can convert MP4, MKV, AVI, MOV, WebM, and virtually any video format. Output options include MKV, AVI, MOV, and MP4. Use custom FFmpeg args to target any format FFmpeg supports.
How do I convert MKV to MP4?
Drop your MKV file onto the converter, select MP4 as the output format, and click Convert. The conversion is instant — FFmpeg stream-copies the data with no quality loss.
How do I convert MOV to MP4?
Drop your MOV file, select MP4 as the output, and click Convert. iPhone MOV files (including HEVC/H.265) are fully supported.
How fast is conversion?
No upload wait — conversion starts immediately. Container-only changes (MP4 ↔ MKV, MOV → MP4) are near-instant. Re-encoding speed depends on your CPU and file size.
Does converting video reduce quality?
No — for container changes (MP4 to MKV, MKV to MP4, MOV to MP4), FFmpeg stream-copies the data unchanged. Zero quality loss. Re-encoding with custom parameters may reduce quality depending on your CRF setting.
What is FFmpeg?
FFmpeg is the world's leading open-source multimedia framework, used by YouTube, VLC, Chrome, and thousands of professional tools. This converter brings FFmpeg to your browser via WebAssembly — no installation needed.
Which browsers work?
Chrome, Firefox, and Edge are fully supported. Safari has limited SharedArrayBuffer support which FFmpeg.wasm requires, so results may vary.
What are custom FFmpeg args?
Advanced users can pass FFmpeg CLI arguments directly — controlling codecs, bitrate, resolution, and filters. Example to reduce file size: -c:v libx264 -crf 28 -preset fast -c:a aac
Is there a file size limit?
No imposed limit. Your browser RAM is the practical ceiling. For files over 2GB, ensure you have free memory. There are no server-side size restrictions.

// Navigate

ConverterAll ToolsBlog

// Tools

MP4 ConverterCompress for WhatsAppMOV → MP4Video → GIF

// About

AboutContactPrivacyTerms

© 2026 FFMPEG CONVERTER

POWERED BY FFMPEG WEBASSEMBLY