Supported formats and codecs

A supported input is a file the inspector accepts, not a file whose name looks right. OfflineMP3 currently accepts MP4 or MOV with AAC-LC audio, and WebM with Opus audio, in mono, stereo, or a layout labelled 5.1. Everything else in this list is refused before an MP3 is encoded.

Open the converter

Containers

MP4 is accepted when the probed format is a MOV-family file and the major brand is one of isom, iso2, iso3, iso4, iso5, iso6, mp41, mp42, avc1, M4V, M4A, or M4B. QuickTime MOV is accepted when the major brand is the QuickTime brand. WebM is accepted when the probed format says webm and the header's document type is webm. If either half of the WebM check fails, the file is not WebM for this tool.

Audio-only M4A and M4B files are accepted when the major brand is M4A or M4B and every audio track is AAC-LC. Phone voice memos and many iTunes or audiobook files use those brands. MKV, AVI, MPEG-TS, and other bare audio such as MP3, WAV, or FLAC stay outside that list. A file that is really one of those, with .mp4 typed on the end, fails as unsupported-container. The message says the extension was not used. That sentence is the point of the check.

Codecs and AAC profiles

Inside MP4 and MOV, every audio track has to be AAC, and the AAC profile has to be LC. AAC Main, HE-AAC, and an AAC track whose profile is missing or unknown fail as unsupported-audio-profile. The next step the page gives you is to re-encode every source audio track as AAC-LC, or to choose another file.

Inside WebM, every audio track has to be Opus. Vorbis in a WebM file is unsupported-audio-codec. Opus in an MP4 file is also refused, because Opus is accepted only in WebM and AAC-LC is accepted only in MP4 or MOV. The rule is the pair, not the codec alone.

The word every matters. The inspector walks all audio tracks, not only the one marked default. A film with an AAC-LC mix and an extra commentary in another codec is refused as a whole. You do not get to skip the commentary track. Remove it, or re-encode it to the supported codec, in some other tool, then bring the file back.

Channel layouts and the 5.1 downmix

Three layouts pass. One channel labelled mono stays mono. Two channels labelled stereo stay stereo. Six channels labelled 5.1 are accepted and then downmixed to stereo. The label and the count have to agree. "Six channels" without the 5.1 label is not enough. "5.1" with a different count is not enough.

The downmix is named downmix-v1. It is passed to the encoder as explicit gains, not as the encoder's private default. The left output is about 0.414 times the front left, plus about 0.293 times the centre, plus about 0.293 times the back left. The right output uses the front right, the centre, and the back right with the same pattern. The low-frequency effects channel is omitted. The gains are scaled so that six full-scale, coherent inputs cannot push either output past full scale. Mono and stereo files do not go through this matrix.

5.1(side) is a different label and is refused. So is quad, 7.1, ambisonics, or a layout the probe calls unknown. The refusal is unsupported-channel-layout. The page will not guess which speaker a channel was meant to be. Guessing would bake a wrong routing into the MP3 with no way for you to hear the mistake as a separate error.

Several tracks, duration, and names

When more than one audio track passes, the page lists each one. You see the title if the file stored a title or a useful handler name, otherwise a label like Audio track 2. You see the language if it was stored, the channel layout, the channel count, and whether the file marked the track as the default. A default track starts selected. A file with only one audio track selects that track even when the file sets no default flag. If several tracks exist and none is the default, nothing is selected and Convert selected track stays disabled until you choose. The choice is only a choice. Conversion starts at the button.

The container needs a finite positive duration, and each audio track needs a sample rate. A track duration comes from the stream, or from a DURATION tag. When a file has a single audio track and both of those are missing, the container duration is used instead. That is common for a WebM file from a browser recording or a transcode that never wrote a per-stream tag. Several audio tracks still each need their own duration. A file that is still being recorded, or a file with no finite duration at all, fails before the track list becomes a task. Attached pictures are not audio tracks and do not become a cover in the MP3. Chapters are not copied.

Video codec is not a support list of its own. The pictures are not kept. H.264, HEVC, VP9, or AV1 in the video track does not decide the audio check. A video track the demuxer cannot ignore would surface as an inspection or decode failure, not as a special "video codec" success. Do not treat a familiar video codec as evidence that the audio is AAC-LC.

The output is narrower than the input

Input can be mono, stereo, or 5.1, at the source sample rate, in AAC-LC or Opus. Output is always an MP3 at 48 kHz and 192 kbps constant bitrate, mono or stereo. 5.1 in becomes stereo out. There is no ALAC, FLAC, WAV, AAC, or Opus output. There is no second bitrate. The verifier rejects an MP3 frame that is not the 192 kbps, 48 kHz, MPEG-1 Layer III frame it expects.

That narrow output is why the formats page and the bitrate page agree with each other. If your player needs something else, this tool is the wrong tool, and it will not approximate the request. The troubleshooting page is where to look when a file you believed was on this list still stops.

Reason codes: Troubleshooting.

What the MP3 does not preserve: Lossy and lossless audio.

The steps: MP4, MOV, and WebM to MP3.