Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
Converting MP4 to AAC produces a raw ADTS stream: AAC frames with no container around them, no metadata and exactly one soundtrack. That is what a segmenter or an embedded decoder wants; if you are making something to listen to, M4A is the better target and this page says why.
Up to 100 files at once. Mixed formats are fine.
They convert one after another and download together as a ZIP.
MP4 to AAC
The output is ADTS: a run of AAC frames, each carrying a short header describing its own sample rate and channel count, with nothing wrapped around them. It is the shape AAC takes when it is being transmitted rather than stored — the form a broadcast chain, a segmenter or a decoder on a small device expects to be handed.
An MP4 holds the same AAC audio inside a full container, with an index describing where every frame sits and a header stating the duration. This conversion strips that structure away and leaves the frames. Nothing about the audio changes shape; everything about how software finds its way around it does.
The words point the wrong way. AAC is a codec and M4A is a file, and someone who wants "the AAC out of my video" to put on a phone is describing an M4A. That file contains exactly the same AAC audio with a container around it, plays everywhere, and carries a title and cover art.
The bare stream is the right answer only when something downstream demands it. If you cannot name the thing that demands it, take the M4A and stop reading — you will get a file that works everywhere instead of one that half your software refuses to open.
No metadata of any kind. There is nowhere in an ADTS stream to record a title, an artist, an album, a track number or a piece of artwork, so a library that imports one shows a file name and nothing else. There is also no chapter list and no way to add one.
And no seek index. A player wanting to jump to the twentieth minute of a containerised file reads an offset from a table; with a raw stream it has to estimate from the bitrate and scan. That is why durations on ADTS files sometimes read wrong until the file has been played through, and why scrubbing feels imprecise.
An ADTS stream carries one audio track and that is a hard property of the format rather than a limitation of this converter. A video holding an original language, a dub and a commentary produces a stream containing the first of them, and the others are gone.
If the source has more than one and you need them, the audio has to go into something with room: M4A and Ogg both hold several. Check what is in the file before assuming the right track came out, because discovering the wrong language an hour into a build is an expensive way to learn it.
Both the MP4 and the ADTS stream hold AAC, so a straight copy of the frames would have been possible. This conversion decodes and encodes instead, which costs one generation of quality — small on speech, measurable on music, and worth knowing about before a file becomes a master for something else.
For a delivery stream that is usually irrelevant: the audio is on its way to being compressed for transmission anyway, and one more pass at the balanced band changes nothing a listener will hear. For anything being kept, take the Extract audio tool on this site with the M4A option, which copies the original packets without a decoder running.
Segmenting for HLS, where the audio is about to be sliced into short pieces and the container would only be in the way. Embedded and automotive players that read ADTS directly because implementing a full MPEG-4 parser on the device was never worth it. Test material for a decoder, where you want frames and no structure around them.
The common thread is that something else is going to impose the structure later. A raw stream is an intermediate, not a destination, and treating it as a destination is how you end up with a folder of files nothing will index.
Three bands, defaulting to balanced, resolved by the encoder into a bitrate appropriate to AAC. Balanced is right for speech and for most delivery work; the high band is worth it when the stream is music that will be listened to attentively rather than played under something.
The small band exists for constrained links — a device on a slow connection, or a feed where the audio budget is fixed and small. AAC holds up better than most codecs when squeezed, which is part of why it became the default for streaming in the first place.
VLC and FFmpeg read raw ADTS without hesitation, and so do the command-line tools that anyone building a delivery chain already has. Browsers, phones and most desktop music players do not — they identify audio by container and see something they have no parser for.
That is worth setting expectations about, because a file that will not open looks broken and is not. If somebody else has to play the result, send them an M4A. If a machine has to read it, the stream is correct.
The work happens in the browser tab on your own processor and nothing carrying the video is sent anywhere. The free tier takes files up to 100 MB and up to a hundred files in a batch, with no account and no daily count.
For the audiences this page is written for that is mostly a convenience argument: source material for a delivery chain tends to be large, unreleased, or under a contract that says where it may be stored. Not moving it is simpler than negotiating about where it went.
| MP4 | AAC | |
|---|---|---|
| Full name | MPEG-4 Video | Advanced Audio Coding |
| File extension | .mp4 | .aac |
| Media type | video/mp4 | audio/aac |
| Compression | Lossy — file size is bought with quality | Lossy — file size is bought with quality |
| First published | 2001 | 1997 |
| Published by | MPEG | MPEG |
| Specification | ISO/IEC 14496-14 | ISO/IEC 13818-7 |
| Licensing | Open standard | Open standard |
| Standing today | Current | Current |
| Audio channels | — | up to 48 |
| Opens in a browser | Every browser | Every browser |
| Considered instead | WebM, MKV, MOV | MP3, OPUS |
VLC reads both MP4 and AAC, so there is a way to check the result against the original without a second tool.
MP4 is MPEG's format, published in 2001. The specification is ISO/IEC 14496-14, and it is worth reading if the file has to outlive the tool that wrote it.
AAC comes from MPEG and dates from 1997, specified as ISO/IEC 13818-7. VLC, FFmpeg and iTunes all read it.
No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file. The engine behind this particular pair is mediabunny, a wrapper around WebCodecs, which borrows your device's own hardware decoders; your browser fetches it once and caches it.
A bare ADTS elementary stream: AAC frames one after another, each with a small header, and nothing else. There is no container around them, so there is no metadata, no cover art, no chapter list and no seek index. That is what makes it useful to a segmenter or a decoder and useless to a music library.
Probably, if the file is for listening. M4A holds the same AAC audio inside an MPEG-4 container with proper title and artwork fields, and every player and phone handles it. Choose the bare stream only when something downstream specifically requires it.
No. An ADTS stream carries exactly one audio track, so a video with a second language or a commentary loses those. If you need more than one, the audio has to go into a container that can hold them.
Re-encoded. The MP4 already held AAC, so a copy would have been possible in principle, but this path decodes and encodes again — one generation of loss. For a stream headed into a delivery chain that is normally acceptable; for anything being archived it is not.
Sometimes. VLC and FFmpeg read raw ADTS without complaint; several media players and most phones do not recognise the extension and will refuse it. That is not a fault in the file — it is a stream, and stream players are the things that read streams.
Because there is no container header stating the length. A player has to estimate the duration by scanning the frames, and on a variable-bitrate stream the estimate can drift until the whole file has been read. A containerised file such as M4A states its duration up front and never has this problem.