In this article, I will discuss and compare the key features of some popular audio codecs. In particular, I will focus on the aspects that are most relevant from a user’s perspective (and not from an algorithm perspective).
If you’ve been wondering what exactly is the difference between MP3, AAC, AC3, WAV, WMA, and Opus, then this article is for you.
This article assumes that you have an understanding of the common terms related to digital audio like frequency, sampling rate, and channels. If not, do check my article on the basics of digital audio here.
A note on “bit rate” before we start. The bit rate of a codec refers to the (average) number of bits it uses to encode one second of raw audio. Bit rate is expressed in units of kbps (kilobits per second). One kilobit is 1,000 bits. Most often, the bit rate is a tunable parameter during encoding.
Bit rate is important because it has a direct impact on the size of the encoded file (in storage applications) and the network bandwidth needed for audio transmission (in streaming and broadcast applications). The lower the bit rate, the lower the size of the encoded audio and the network bandwidth requirement.
Let’s now jump right in and take a look at the characteristics of some popular codecs.
MP3 is the most well-known audio codec by far and almost synonymous with digital audio in the popular imagination. MP3 ushered in the digital audio revolution in the ‘90s.
MP3 was standardized by ISO as MPEG-1 Audio Layer III in 1993.
MPEG-2 (Part 3) included an extension to MP3 that supported lower sampling rates (16, 22.05, 24 kHz) and channels up to 5.1. But these sampling rates discard a good amount of human audible frequencies (i.e., above 8, 11.025, and 12 kHz respectively). As a result, they are not useful for all kinds of audio.
Over now to some facts about MP3.
|Sampling rates supported (kHz)||32, 44.1, 48 (MPEG-1); 16, 22.05, 24 (MPEG-2)|
|Recommended bit rate||128 kbps or above for 48 kHz stereo; supports up to 320 kbps|
|Maximum number of channels supported||Stereo; 5.1 is supported only in MPEG-2 for bit rates less than 32 kHz|
|Standardization||ISO/IEC 11172-3 (MPEG-1)|
ISO/IEC 13818-3 (MPEG-2)
|Patents / royalties||Free to use (all patents have expired)|
|Containers||MP4, MPEG-1, ADTS, 3GP|
|Decoder support||Widely available; MP3 is supported by almost all web browsers and consumer audio devices|
|Common Applications||Music and audio on the Internet, personal audio devices|
ISO standardized AAC in MPEG-2 and MPEG-4 as the successor to MP3. AAC is an abbreviation for Advanced Audio Coding. AAC features several improvements and new coding techniques that enable significant bit rate improvements over MP3 at the same audio quality. Another way of looking at this is that AAC gives superior audio quality than MP3 at the same bit rate.
AAC is much more versatile than MP3. It supports a broader range of sampling rates, bit rates, and numbers of channels. It also has various variants intended for different use-cases and applications. Some of the variants are AAC LC (Low Complexity), AAC Main, AAC LD (Low Delay), and HE-AAC (High Efficiency).
|Sampling rates supported (kHz)||8 to 192|
|Recommended bit rate||96 kbps or above for 48 kHz stereo; supports arbitrary bit rates|
|Maximum number of channels supported||Up to 48 channels|
|Standardization||ISO/IEC 13818-7 (MPEG-2)|
ISO/IEC 14496-3 (MPEG-4)
|Patents / royalties||OEMs and end-user software vendors (eg., media players) need to pay royalties to patent holders|
|Containers||MP4, ADTS, 3GP|
|Decoder support||Widely available; AAC is supported by most web browsers and consumer audio devices|
|Common Applications||Music and audio on the Internet, personal audio devices; digital broadcasting (radio and TV)|
AC3 (Dolby Digital)
AC3 is an audio codec from Dolby. Dolby uses the market name “Dolby Digital” for AC3. Dolby Digital is almost synonymous with “surround sound” in cinema, home theaters, and broadcast.
Dolby Digital supports up to 5.1 channels – left, right, center, left surround, right surround, and a low-frequency enhancement channel. The surround channels enable producers to create a sensation of sound from any direction surrounding the listener.
Dolby upgraded AC3 with EAC3. EAC3 supports 7.1 channels. Dolby markets EAC3 as “Dolby Digital Plus”. AC3 programs will play on devices and software supporting EAC3.
Dolby technology adapts the audio to the actual number of speakers present on the playback device. So AC3 and EAC3 will play fine on Dolby-approved stereo devices.
|Sampling rates supported (kHz)||32, 44.1, 48|
|Recommended bit rate||192 kbps or above for 48 kHz, 5.1-channel audio; 96 kbps or above for stereo|
|Maximum number of channels supported||5.1 in AC3; 7.1 in EAC3|
|Standardization||Annex E of ATSC A/52:2012, as well as Annex E of ETSI TS 102 366 V1.2.1 (2008–08)|
|Patents / royalties||AC3 is free to use (all patents have expired);EAC3 products need a license from Dolby|
|Containers||MP4, CFF, UltraViolet|
|Decoder support||HD DVD players, Blu-ray Disc players, Digital TV, Apple devices, MS Edge (Windows 10), FFmpeg, Netflix, Vudu, Amazon Fire TV, many smartphones|
|Common Applications||Cinema, Digital TV, AVRs, HD DVD, Blu-ray Discs, OTT streaming|
Opus is an open-source, royalty-free audio codec designed for interactive audio applications (VoIP, video conferencing,…). It has one of the lowest latencies among audio codecs by design.
Opus is a combination of SILK (a voice codec by Skype) and CELT (an audio codec from Xiph.org). It supports three modes – SILK only, CELT only, and hybrid (a combination of SILK and CELT). The mode is selected based on the content being encoded. It even allows switching between the modes in the middle of the stream.
Opus has been steadily gaining in popularity after it was standardized by IETF in 2012. It is now widely supported and used in the Internet and VoIP applications. WhatsApp uses Opus as its VoIP codec.
Opus supports mono and stereo channels only.
|Sampling rates supported (kHz)||8, 12, 16, 24, or 48 kHz|
|Recommended bit rate||96 kbps or above for 48 kHz stereo; supports 6 kbps to 510 kbps – generally outperforms AAC and MP3 at lower bit rates|
|Maximum number of channels supported||Stereo|
|Standardization||RFC 6716 of IETF (Internet Engineering Task Force)|
|Patents / royalties||Free to use, open-source|
|Containers||MP4, Ogg, WebM, MPEG-TS|
|Decoder support||Available in almost all widely used browsers, operating systems, and media players; Opus support is mandatory in WebRTC implementations|
|Common Applications||VoIP, real-time interactive communication|
WAV is short for Waveform Audio File Format. It is not a codec. It is an audio file format commonly used to store uncompressed audio. It belongs to the RIFF family of file formats.
The information about sample rate, number of channels, and bit depth is part of the WAV file header (or fmt sub-chunk, to be precise). It supports any value (that fits within the number of bits allocated) for these parameters.
It is popular among audio professionals because it is as close to the original recorded audio as it can get. It is widely supported in professional audio editing software and media players. It is not suited for consumer or end-user applications due to the large data sizes.
WMA (Windows Media Audio) is a family of proprietary audio codecs developed by Microsoft. WMA is a part of the Microsoft Media Foundation. It was intended to be a competitor to the more widely supported codecs that we discussed above.
The WMA family consists of four codecs – WMA, WMA Pro, WMA Lossless, and WMA Voice. While WMA can contain 48 kHz stereo at most, WMA Pro supports up to 7.1 channels and sampling rates till 96 kHz. WMA is much more common in use than WMA Pro.
WMA files can be played by most media players for Windows OS. They include Windows Media Player (of course!), VLC, Media Player Classic (MPC) family, Winamp, and RealPlayer.
WMA encoding can be carried out with Windows Media Foundation, Windows Media Player, Windows Movie Maker, RealPlayer, and Adobe Audition, among others.
|Sampling rates supported (kHz)||8, 11.025, 16, 22.05, 32, 44.1, 48, 88.2, 96 (88.2 and 96 in WMA Pro only)|
|Recommended bit rate||128 kbps or above for 48 kHz stereo (depends on the encoder, third party encoder implementations are also available)|
|Maximum number of channels supported||Stereo (WMA); 7.1 (WMA Pro)|
|Patents / royalties||Proprietary technology; Licensed to third parties|
|Decoder support||Available in most software media players for Windows OS|
|Common Applications||Voice, music, and audio playback on Windows devices; OTT streaming to Windows devices|
This brings us to the end of this article. Thank you for reading. Let us know your opinions, comments, and suggestions below.