Opus vs AAC vs MP3 vs FLAC
Compare Opus, AAC, MP3 and FLAC on one file. Opus at 64k beat AAC at 128k on size, and one codec missed its own nominal bitrate by 16 percent.
Audio gets a fraction of the attention video does, which is why the defaults people carry around are usually a decade out of date. Six encodes on one file.
Short version. Opus at half the bitrate of AAC produced a 37% smaller file, and the nominal bitrate you request is not the number of bytes you get.
| Variant | Encode | Size | Cost |
|---|---|---|---|
| Opus 64k | 128 ms | 50.5 KB | $0.0022 |
| Opus 128k | 101 ms | 93.2 KB | $0.0016 |
| AAC 128k | 257 ms | 80.2 KB | $0.0017 |
| AAC 192k | 170 ms | 119.4 KB | $0.0017 |
| MP3 192k | 108 ms | 118.7 KB | $0.0016 |
| FLAC lossless | 62 ms fastest | 453.0 KB | $0.0016 |
Opus at 64k beat AAC at 128k
| Nominal | Delivered | |
|---|---|---|
| Opus 64k | 64 kbps | 50.5 KB |
| AAC 128k | 128 kbps | 80.2 KB |
Half the bitrate, 37% fewer bytes, and for speech and most mixed content Opus at 64k is widely held to be at least competitive with AAC at 128k. That is the case for Opus in one line, and it is why WebRTC, Discord and most modern voice stacks standardised on it.
The caveat that belongs next to it: support. Opus in an Ogg or WebM container does not play everywhere AAC in an MP4 does, particularly on older Apple hardware. The codec question is settled; the container and platform question is not.
The nominal bitrate lied
This is the detail worth taking away, because it quietly breaks storage estimates.
Five seconds at 128 kbps should be 80 KB. AAC delivered 80.2 KB, which is essentially exact. Opus delivered 93.2 KB, about 16% over its own nominal figure.
Two things cause that. libopus defaults to variable bitrate, so -b:a is a target it averages toward rather than a ceiling it respects. And the Ogg container carries more per-page overhead than MP4’s, which is proportionally visible on a clip this short.
Neither is a bug. Both mean the same thing for planning: if you are sizing storage from bitrate multiplied by duration, add a margin, and measure the codec you actually ship.
FLAC encoded fastest
FLAC took 62 ms, the fastest of all six, and produced 453 KB, nine times Opus 64k.
That is not a paradox once you see what lossless does. There is no psychoacoustic model to run and no decisions to make about what to discard, so the encoder does far less thinking. Lossless is cheap in CPU and expensive in bytes, which is the exact inverse of the tradeoff people assume.
For archival masters that is the right trade. For anything delivered over a network it is not close.
MP3 and AAC are the same size at 192k
118.7 KB against 119.4 KB, a difference of under 1%.
So at 192 kbps the storage argument between them does not exist. The reasons to pick one over the other are quality per bit, where AAC is better, and universal decode support, where MP3 remains unbeatable. Nothing on the size column should inform that decision.
Audio time is a rounding error
Every variant finished inside 260 ms, and the whole sweep is a fraction of one 720p video encode. Run to run these move by tens of milliseconds, which is its own lesson: at this scale the timings are noise and only the sizes are worth reading closely.
Worth remembering when a pipeline re-encodes audio it could have copied. -c:a copy is still free and still the right answer when the codec already suits the target, but the cost of getting it wrong is much smaller than on the video side.
Where this stops
Five seconds of one file’s audio track, video stripped. Container overhead is proportionally larger on a short clip, so the Opus overshoot would shrink as a percentage on a full-length track. Content matters too: these results are for one mixed source, and speech-only or music-only material will move the numbers.
Audio is one part of a wider codec comparison on the same source, collected in Video codec comparison, measured.
Frequently asked questions
Is Opus better than AAC?
On size, clearly. Opus at 64k produced 50.5 KB against AAC at 128k's 80.2 KB, so half the nominal bitrate gave 37% fewer bytes. AAC still wins on playback support, particularly on older Apple hardware.
Why is my audio file bigger than the bitrate suggests?
libopus defaults to variable bitrate, so -b:a is a target it averages toward rather than a ceiling. We measured Opus at 128k delivering 16% more bytes than bitrate times duration predicts.
Should I use FLAC for delivery?
No. FLAC produced 453 KB against Opus 64k's 50.5 KB, nine times the size. It is the right choice for archival masters and the wrong one for anything sent over a network.
MP3 or AAC at 192k?
They came out within 1% of each other on size, so storage is not the deciding factor. Choose AAC for quality per bit and MP3 for universal decode support.
