whatsmybitrate
← All articles

Guides

How to check an AAC or M4A file

By Oren Cohen · Published · Updated

Start with the thing that confuses almost everyone: .m4a doesn't tell you whether a file is lossy or lossless.

M4A is a container — an MPEG-4 box with audio in it. What's inside can be AAC, which is lossy and roughly MP3's successor, or it can be ALAC, Apple's lossless codec. Same extension. Same icon. Same everything, as far as your file browser is concerned. One is a compressed approximation and the other is a bit-perfect copy, and you cannot tell which by looking at the filename.

So step one with any .m4a is not "what bitrate is this," it's "what codec is this."

Step 1: Find out what's actually inside

The codec name is right there in the file's metadata, you just have to look past the extension. You're looking for one of:

Codec What it means Typical bitrate
aacLossy. AAC-LC, the normal kind.128–256 kbps
alacLossless. Apple's FLAC equivalent.700–1,000 kbps

The bitrate alone usually gives it away — if an .m4a is running at 900 kbps it is not AAC. But read the codec field rather than inferring, because that's the definitive answer. The analyzer reports it on the first line of every result.

Worth knowing: a raw .aac file (rather than .m4a) is always lossy AAC with no container around it. Less common, and it's the one case where the extension is unambiguous.

Step 2: If it's ALAC, verify it like a FLAC

ALAC has exactly the same vulnerability as FLAC: the format is lossless, but nothing stops someone feeding it lossy audio. An AAC decoded and re-encoded to ALAC is a "lossless" file with a lossy spectrum.

Check it the same way — measure where the frequency content stops. A genuine 44.1 kHz ALAC should reach close to 22 kHz with a ragged top edge. If it stops flat at 16 or 19 kHz, it came from a lossy source. The full method is in the FLAC guide; every technique there applies unchanged.

One wrinkle specific to the Apple ecosystem: files ripped by iTunes or the Music app are ALAC by default only if someone chose it — the import settings offer AAC at various bitrates, and many libraries were built at 128 or 256 kbps AAC without their owners ever noticing. If your own archive contains .m4a files of uncertain vintage, this check is worth running on them too. Discovering that your 2011 "CD rips" were actually lossy imports is annoying, but far better to learn it now than after the discs are gone.

Step 3: If it's AAC, know that the numbers differ from MP3

This is where people misjudge AAC. It's a genuinely better codec than MP3 — it does more with the same bits — so its lowpass filters sit higher for a given bitrate. Judging an AAC file by MP3 cutoff tables will make good files look suspicious.

AAC bitrate Typical lowpass Where you'll meet it
96 kbps~15–16 kHzLow-tier streaming
128 kbps~16–17 kHzYouTube audio, older downloads
192 kbps~18–19 kHzMid-tier streaming
256 kbps~19–20 kHzApple Music, iTunes purchases

A 256 kbps AAC cutting off at 19.5 kHz is a perfectly healthy file. That same ceiling on something claiming to be lossless would be a red flag. Context matters.

The tricky one: HE-AAC and fake high frequencies

Everything on this site rests on a simple principle — lossy encoders delete high frequencies and can't put them back. There's exactly one common exception, and it's worth understanding because it breaks the usual reasoning.

HE-AAC (High Efficiency AAC, used at low bitrates like 32–64 kbps for radio streams and some podcasts) uses a trick called Spectral Band Replication. Instead of encoding the high frequencies, it encodes only the bottom of the spectrum plus a small set of instructions, and the decoder synthesizes the high band by copying and reshaping the low band.

The result is a file that looks full. Content runs right up to the top of the spectrogram. By the naive test it passes — and it's a 48 kbps stream.

The tells, once you know to look:

A visible seam. There's a horizontal discontinuity at the SBR crossover, usually somewhere between 8 and 12 kHz, where real encoded audio stops and synthesized audio begins. The texture changes abruptly — the upper region looks smeared or repetitive compared to the detailed region below it.

The high band mirrors the low band. Because it's built by copying, patterns in the upper region echo patterns below the crossover. Real music doesn't do that.

The bitrate is absurdly low. Most of all: if a file claims full frequency content at 48 kbps, the frequencies are not real. There aren't enough bits in the file to encode them.

You will mostly meet HE-AAC in broadcast streams and low-bitrate podcast feeds rather than music libraries, but it's the one case where "the spectrogram looks full" isn't good enough on its own.

There are actually two generations to know about. HE-AAC v1 is SBR alone, as described above. HE-AAC v2 adds Parametric Stereo on top — at very low bitrates it encodes the two channels as a mono sum plus a compact description of how the stereo image should be reconstructed. On a spectrogram of a v2 stream you may notice the left and right channels share suspiciously identical fine structure, because they do. Neither generation is a scam; both are legitimate engineering that lets a 32 kbps stream sound like FM radio. They become a detection problem only when someone transcodes such a stream into a container that implies more.

Where your AAC files probably came from

Some useful reference points. Apple Music and iTunes purchases are 256 kbps AAC. YouTube audio is typically around 128 kbps AAC or Opus, which is why a "high quality" YouTube rip caps out well below a CD rip no matter what you do to it afterwards. Broadcast and podcast streams run lower still, often HE-AAC.

None of these are bad files for what they are. They only become a problem when they get relabelled — converted to ALAC or FLAC and passed along as lossless, at which point the extension is making a claim the audio can't back up.

AAC versus MP3: why the same bits go further

It's worth understanding why AAC earns its higher ceilings, because it explains several things you'll see in real files. MP3 processes audio in blocks of 576 samples with a fairly crude filterbank and an aging stereo model. AAC — designed a decade later, partly as a deliberate answer to MP3's weaknesses — uses longer 1,024-sample blocks for tonal material, shorter blocks for transients, a more efficient filterbank, and better tools for encoding the two channels of a stereo pair together.

The result is measurable in blind tests: AAC at 128 kbps roughly matches MP3 at 160–192 kbps, and the gap holds all the way up the ladder. That's why Apple chose it for iTunes at 256 kbps rather than 320 — the smaller number genuinely buys the same quality, and it halved their bandwidth bill compared with MP3 at equivalent performance.

For you as an analyst the implication is simple: never read an AAC file with MP3 instincts. A 128 kbps AAC with a 16.5 kHz ceiling is normal and healthy. A 128 kbps MP3 with the same ceiling is also normal — but the AAC will sound better. The ceiling tells you the bitrate history, not the listening quality; those are related but separate judgments.

A note on Opus, the codec that's quietly everywhere

If you analyze audio pulled from YouTube, Discord, WhatsApp voice messages, or many game soundtracks, you'll increasingly meet Opus rather than AAC. Opus is the newest of the major lossy codecs and the most efficient of all — it matches 256 kbps AAC somewhere around 160 kbps, and it preserves essentially the full audible band even at moderate bitrates.

That last part matters for spectrogram reading: Opus at decent bitrates reaches 20 kHz, which means the classic cutoff test mostly can't catch an Opus transcode. If a FLAC's spectrum is full but the file's provenance is suspicious and it passed through YouTube at some point, the cutoff test alone won't convict it. Check the noise floor texture and compression ratio instead — and accept that some modern transcodes are simply harder to detect than the MP3-era ones. Honesty about that limitation beats false confidence.

Frequently asked questions

Is 256 kbps AAC good enough for archiving? For listening, yes — it's transparent for virtually everyone. For archiving, no codec and no bitrate replaces the original: transcodes accumulate, and you can't re-encode from AAC to a future format without stacking losses. Archive in ALAC or FLAC; keep the AAC for the phone.

Can I convert my AAC library to ALAC to "upgrade" it? You can convert it, but you can't upgrade it. The ALAC will faithfully preserve everything the AAC contains — which is exactly the lossy approximation you started with, now at four times the size. This article's whole method exists because people do this, deliberately or not.

Why does my .m4a show 'mp4a' as the codec? mp4a is the container-level label MPEG-4 uses for its audio track; it almost always means AAC-LC underneath. ALAC files identify themselves explicitly, so an mp4a label is effectively a lossy label unless the bitrate (~700+ kbps) argues otherwise.

Are iTunes purchases still DRM-protected? No — Apple dropped DRM from music purchases in 2009, and everything sold since is an unprotected 256 kbps AAC. If you have older .m4p files, those are the protected generation; the extension is the tell.

The verdict

For .m4a files the order of operations is: identify the codec first, then judge it by the right yardstick. ALAC gets checked like FLAC. AAC gets checked against AAC's cutoff table, not MP3's. And if the bitrate is very low but the spectrum looks full, you're looking at SBR rather than a miracle.

The analyzer reports the codec, the stated bitrate, the measured peak frequency and the peak-to-Nyquist ratio together, which is enough to place any .m4a correctly in about five seconds.

ALAC, SBR, lowpass and the rest are defined in the audio glossary.

Check an M4A right now

Upload the file and find out whether it's AAC or ALAC — and whether the audio backs up the label. Free.

Analyze a File