How it works · updated 22 October 2026
MP4 to MP3, without a server in the middle.
The whole converter runs in this tab. This page explains what happens to the file, what the browser must support, and the cases where the tool refuses a file instead of writing a broken output.
mp4tomp3.net converts MP4 video to MP3 audio in the browser; the file is never uploaded.
The pipeline
- Read the container. The file is opened through the browser's File API and read lazily. The container index tells the tool which tracks exist and where their packets are.
- Drop the picture. For a video container, the video track is discarded without being decoded. A 4 GB ProRes file and a 40 MB MP4 take the same audio path.
- Decode the audio. AAC, MP3, Opus, Vorbis and FLAC are decoded with WebCodecs; PCM is read directly. The browser's own decoder is used, not a bundled copy of FFmpeg.
- Resample or remix only if needed. MP3 accepts 8–48 kHz and one or two channels. A 96 kHz source is resampled to 48 kHz; a 5.1 source is folded to stereo. Wider files are not silently written with an invalid header.
- Encode and write. MP3 output goes through a WASM build of LAME in a worker. WAV output is written as PCM. The result is a local Blob; no request carries the audio.
Browser requirements
| Browser | Minimum | Notes |
|---|---|---|
| Chrome / Edge | 94 | Desktop and Android. |
| Firefox | 130 | AAC decoding depends on the operating system; some Linux builds need system codecs. |
| Safari | 26 | macOS, iOS and iPadOS. Older Safari does not expose the audio decoder. |
If the browser does not expose AudioDecoder, the page says so before you pick a file. It does not
pretend to convert and fail at 99%.
What is supported — and what is not
| Input | Supported | Why |
|---|---|---|
| MP4 / M4V with AAC-LC audio | Yes | The most common case. The video track is dropped. |
| MOV with AAC-LC audio | Yes | iPhone and QuickTime exports usually land here. |
| MOV with PCM audio | Yes | Common in ProRes exports; the video codec is irrelevant. |
| M4A with AAC-LC audio | Yes | A useful side effect of the same pipeline. |
| M4A with ALAC (Apple Lossless) | No | The browser cannot decode ALAC; the page says so. |
| AC-3 / E-AC-3 / DTS audio | No | Not decodable without an extra codec pack. |
| DRM-protected .m4p / FairPlay | No | Protected audio is refused, not guessed at. |
| AIFF / WMA / AMR | No | Export a WAV first, then convert that. |
It will not fetch a URL, download from a streaming service, remove DRM, restore lost audio detail, or invent a video track. It also will not upload the file to a fallback server when the browser cannot decode it. A refusal is the honest outcome.
How to check that nothing is uploaded
- Open DevTools → Network, and clear the list.
- Drop a file into the converter.
- Filter by Fetch/XHR. The page's own assets and the analytics request may appear; no request carries the file.
- The browser reads the file through the File API, which does not create a network request.
You can also disconnect the network after the page has loaded and convert a file. The conversion itself does not need the network. The analytics request will fail silently.
Limits
- Memory, not upload quota. The input is read lazily, but the decoded audio and the output still occupy memory. Very large files can fail on a phone.
- MP3 is lossy. A bitrate above the source does not restore detail; it only avoids adding more loss than necessary.
- MP3 output is CBR only. The encoder exposes constant bitrate, not VBR. The page does not offer a VBR control it cannot honour.
- WAV output is large. At 44.1 kHz, 16-bit stereo it is about 10.1 MiB per minute. A file approaching 4 GiB needs RF64, and the tool warns before writing one.
What was tested
The engine is exercised with fixed fixtures: MP4/AAC, MOV/AAC, MOV/ProRes with PCM, M4A/AAC, M4A/ALAC (must fail), WAV 16-bit, WAV 24-bit/96 kHz, MP3, a silent MP4, a truncated MP4, a 5.1 source, a MOV with two audio tracks, and a trimmed file. Outputs are checked with ffprobe for codec, duration, sample rate and channel count, not just “the page opened”.
References
- W3C WebCodecs — the decoding API this page relies on.
- Mediabunny — container reading, audio decoding and muxing.
- LAME — the MP3 encoder used by the WASM build.
- ISO/IEC 11172-3 — the MPEG-1 Audio standard that defines MP3.
- Microsoft RIFF/WAVE reference — the WAV container.