MP4 to MP3, in your browser

Drop an MP4 video. Get an MP3 of its audio track. Conversion runs in your tab. Big files do not need to upload anywhere.

Options

Loading...

Files stay on your device. Nothing uploads.

What this does

A surprisingly common need: you have an MP4 video file (a podcast video, a lecture recording, a vlog) and you want just the audio. Many tools want you to upload the whole video to their servers, often hundreds of megabytes. We do not.

This converter extracts the AAC audio stream from the MP4 container, decodes it to raw audio, then re-encodes as MP3 at your chosen bitrate. Everything happens in your tab; the file never leaves your device.

How the fast path works

On Chrome 94+, Edge, and Firefox 130+ we use the browser's built-in WebCodecs AudioDecoder for AAC decoding. mp4box.js parses the MP4 container in JavaScript (it is small, around 700 KB). lamejs encodes the resulting PCM samples into MP3, also in pure JavaScript. The whole pipeline ships under ~1 MB of JavaScript.

Expected time: a 30-minute video extracts to MP3 in roughly 5-15 seconds on a modern laptop. The page stays responsive because the work runs in a Web Worker.

How the fallback works

On browsers without WebCodecs (older Safari, some embedded browsers) we fall back to ffmpeg.wasm. This is a port of ffmpeg compiled to WebAssembly. It works everywhere but it is heavy: the WASM core is around 30 MB. The first conversion downloads it (Service Worker caches it after that). The fallback is reliable but expect it to be 5-10x slower than the WebCodecs path.

The fallback also runs entirely in your browser. The ffmpeg-core.wasm bytes are pinned by SHA-256 in the converter manifest; the runtime verifies them before instantiation, just like our other WASM modules.

Bitrate options

Pick from 128, 192, 256, or 320 kbps. 192 is the default and a sensible choice for spoken-word content. 320 is the maximum MP3 quality and the right pick if the MP4 carries music. 128 saves space at the cost of audible compression artifacts on critical listening.

Limits

Some MP4 files use audio codecs we cannot decode in the WebCodecs path (Opus in MP4, AC3, DTS). The fallback handles them, but it is slower. If you see "AudioDecoder error" in the WebCodecs path, retry; the converter will pick the fallback automatically on a future release.

Very large videos (hours long, 4K) may exhaust browser memory in the fallback path. The WebCodecs path streams better.

Frequently asked questions

Why is my first conversion so slow on Safari?
Safari does not yet ship full WebCodecs support, so we fall back to ffmpeg.wasm. The ~30 MB WASM module downloads on first use; subsequent conversions reuse it from cache.
Can I keep the video and just save the audio?
Yes. The conversion is one-way: the MP4 stays untouched in your file system. We never modify your input.
Does this preserve ID3 tags or chapters?
Not yet. The output MP3 has no metadata. A later release will copy title, artist, and chapter markers from the MP4 if present.
Why not use the original AAC?
You can usually rename a .m4a file directly without re-encoding. We re-encode to MP3 because the request is "MP3". An "MP4 to M4A" passthrough mode is on the roadmap.
How can I be sure ffmpeg.wasm is what you say it is?
The SHA-256 in /manifests/mp4-to-mp3.json must match the bytes that run. The runtime refuses to instantiate any module whose hash differs. Compare the value yourself.