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 WAV to AAC here produces a bare ADTS stream: self-describing frames with no container around them, which is what a streaming segmenter or an embedded player means when it asks for a .aac file. It encodes in your browser. If you wanted tags and artwork, the M4A version of the same codec is the file to make instead.
Up to 100 files at once. Mixed formats are fine.
They convert one after another and download together as a ZIP.
WAV to AAC
What comes out of this conversion is an ADTS stream — Audio Data Transport Stream — and the name is the description. The file is a sequence of compressed blocks, each preceded by a short header stating the profile, the sample rate and the channel configuration. There is no index, no header at the top of the file, and no structure above the frame.
That is a deliberate design rather than an omission. A format built to be transmitted cannot assume a receiver saw the beginning, so every frame has to be independently interpretable. Tune into the middle of an AAC broadcast and the decoder synchronises within a frame, because everything it needs is right there in front of it.
The requirement comes from systems rather than from people. HLS and similar segmented-streaming setups cut audio into short pieces and serve them individually, which only works when the pieces stand alone. Embedded and automotive players often implement a decoder and no container parser, because a parser is code they would have to maintain. Telephony platforms, announcement systems and IVR menus take the same view for the same reason.
None of those readers chose the format for its sound. They chose it because their documentation named it, and the useful thing this page can do is produce exactly that file rather than something that will fail an upload check three steps later.
A WAV rarely carries metadata to begin with, but here it would make no difference if it did. ADTS has no field for a title, an album, a year or an image, and there is no convention for bolting one on. Everything a frame header can say is about the decoder configuration.
So a folder of these files is identified by its filenames and nothing else, which is fine for a segmenter and hopeless for a music library. If you find yourself wanting to name the artist, the format is telling you that you wanted an M4A.
Because each frame carries its own header, two ADTS files with the same sample rate and channel count can be concatenated byte for byte and the result is a valid stream. No decoder runs, no encoder runs, and no audio is lost. Splitting works the same way, provided the cut lands on a frame boundary.
This is the property the format exists for, and it is worth knowing before you build a pipeline around something else. Assembling an hour of announcements from forty pre-encoded fragments costs nothing in quality with ADTS, and costs a full re-encode in most containers.
There is no duration field anywhere in the stream, so a player showing you a length has calculated one by dividing the file size by an assumed bitrate. With a constant bitrate that estimate is close; with a variable one it drifts, and the progress bar jumps as playback continues.
Expect this and do not debug it. If an accurate duration matters — a player interface, a scheduling system, anything that has to know before it starts — the audio needs a container that records it, and M4A is the same codec with that information written down.
It is worth being explicit that the audio decisions are identical. The encoder makes the same judgements about what to discard whether the output is going into an MPEG-4 container or straight into frames, so a bare AAC and an M4A made from the same WAV at the same band sound the same.
The difference is a few kilobytes of structure and everything that structure enables: seeking, tagging, a stated duration, and a file your operating system will open in a music player rather than offer to download again. Choosing between them is a choice about the destination, never about fidelity.
This page will produce a perfectly good .aac from a song, and doing that is almost always a mistake. The track will arrive in a library untitled, unsorted, with no artwork and an unreliable duration, and half the software on a phone will decline to import it at all.
The rule is simple enough to apply without thinking about it. If the consumer is code, produce the stream. If the consumer is a human with a playlist, produce an M4A or an MP3 and keep the WAV as the master. Nothing is gained by giving a listener the more primitive file.
Requirements written for AAC are usually ceilings imposed by a transport rather than quality targets: 64 kbps because a channel is narrow, 128 because a segment budget was set years ago. The quality control here offers three bands rather than a kilobit figure, since the mapping differs by codec and the encoder resolves it.
Pick the band nearest the requirement and check the resulting file, which takes ten seconds and settles the question. If the source is speech — announcements, prompts, narration — the smallest band is very likely already inside whatever number you were given. Do not plan on mono to get under it: there is no channel control on this pair, and the band resolves to a bitrate from the codec alone, so a mono source and a stereo one are written at the same rate.
A WAV is around 10 MB a minute, and the per-file ceiling here is 100 MB, which is a little under ten minutes of stereo. That ceiling exists because the whole file is held in the browser’s memory while it is converted, not because of an upload allowance — there is no upload.
For a pipeline that is normally exactly the right shape: prompts, segments and cues are short by nature, and a hundred of them can be dropped at once and come back as a ZIP. A full-length programme needs splitting first, and it needed splitting for the segmenter anyway.
| WAV | AAC | |
|---|---|---|
| Full name | Waveform Audio | Advanced Audio Coding |
| File extension | .wav, .wave | .aac |
| Media type | audio/wav | audio/aac |
| Compression | Uncompressed | Lossy — file size is bought with quality |
| First published | 1991 | 1997 |
| Published by | Microsoft | MPEG |
| Specification | RIFF WAVE | ISO/IEC 13818-7 |
| Licensing | Published, not standardised | Open standard |
| Standing today | Current | Current |
| Bit depth | 32 | — |
| Audio channels | up to 65,535 | up to 48 |
| Opens in a browser | Every browser | Every browser |
| Considered instead | FLAC, AIFF | MP3, OPUS |
WAV defines up to 65535 audio channels and AAC up to 48. A surround mix is folded down rather than carried across.
The usual programs do not overlap: WAV opens in Audacity, Adobe Audition and Reaper, AAC in VLC, FFmpeg and iTunes — so whoever receives the result needs something from the second list.
The file gets substantially smaller, and it gets smaller by discarding detail. WAV keeps everything; AAC keeps what the eye is poor at noticing. On a photograph that trade is close to free; on text, a screenshot or a line drawing it is visible as haloing around the edges.
The two are aimed at different work: WAV at editing and archiving, AAC at handing a finished file over, streaming and phones. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.
WAV is Microsoft's format, published in 1991. It records 32 bits per channel.
AAC comes from MPEG and dates from 1997, specified as ISO/IEC 13818-7. VLC, FFmpeg and iTunes all read it.
The audio is the same codec; the packaging is not. An .aac file here is a bare ADTS stream — a run of self-describing frames with nothing wrapped around them. An .m4a is that audio inside an MPEG-4 container, which adds a seek index and fields for title, artist and cover art. If you are feeding a person, you want the M4A; if you are feeding a pipeline that asked for .aac, you want this.
No. There is nowhere to put them. An ADTS stream is frames and frame headers, and a frame header carries the sample rate, the channel count and the profile — nothing about the recording. Anything that needs a title alongside the audio needs a container, which means M4A.
Because the file never states one. Nothing in an ADTS stream records how long it is, so a player has to estimate the length from the file size and the observed bitrate, and a variable-bitrate stream makes that estimate drift. It is normal for this format and not a sign of a damaged file.
Yes, for this format specifically. Every ADTS frame carries its own header, so concatenating two streams with the same sample rate and channel count produces a valid third stream with no re-encoding and no quality cost. That property is exactly why streaming systems segment audio this way.
The three bands resolve to a bitrate inside the encoder rather than being fixed here, because the sensible number differs by codec. If your specification names an exact figure — 64 kbps for an announcement system, 128 for a stream — pick the band nearest it and verify the result, since the requirement is usually a ceiling rather than a target.
No. The encoding runs in the browser tab: Chrome, Edge and Safari expose an AAC encoder directly, and where one is missing a WebAssembly encoder is downloaded to the page instead. Either way the audio itself is never transmitted, and there is no account or queue involved.