Why libmp3lame is still used instead of AAC

While Advanced Audio Coding (AAC) offers superior sound quality and compression efficiency compared to the aging MP3 format, the libmp3lame encoder remains highly popular and widely integrated today. This article explains why this legacy software library persists in modern audio workflows, highlighting factors such as universal compatibility, licensing freedom, open-source integration, and entrenched legacy systems.

Universal Compatibility and Ubiquity

The primary reason libmp3lame remains relevant is the absolute ubiquity of the MP3 format. Virtually every digital device capable of playing audio—ranging from modern smartphones and smart TVs to legacy car stereos, DVD players, and cheap microcontrollers—can decode MP3 files. While AAC support is highly widespread on iOS, Android, and modern web browsers, there are still legacy hardware systems and niche media players that fail to decode AAC files. Developers choose libmp3lame to guarantee that their audio output will play on 100% of devices without exception.

Patent Expiration and Licensing Freedom

All patents associated with the MP3 format expired by April 2017. This milestone turned MP3 into a completely free, patent-unencumbered technology. Developers can integrate libmp3lame into commercial software and distribute MP3-encoded files without paying royalties or worrying about legal liabilities.

In contrast, AAC is still protected by active patents. Commercial software developers and hardware manufacturers often must pay licensing fees to the AAC patent pool (administered by Via LA) to legally distribute AAC decoders and encoders. For indie developers, open-source projects, and bootstrapped startups, the total financial and legal safety of libmp3lame makes it highly attractive.

Open-Source Friendly Licensing

libmp3lame is distributed under the GNU Lesser General Public License (LGPL), making it easy to bundle with major open-source media frameworks like FFmpeg, VLC, and Audacity.

While there are open-source AAC encoders, they come with caveats: * FDK-AAC: While highly efficient, its custom license is incompatible with the GPL, meaning developers cannot legally distribute pre-compiled binaries containing both GPL code and FDK-AAC. * Native FFmpeg AAC encoder: This encoder is GPL-compatible, but historically it lagged behind FDK-AAC and libmp3lame in terms of tuning and quality, though it has improved significantly in recent years.

Because of these licensing friction points, libmp3lame remains the most hassle-free, high-quality open-source encoder available for developers to ship.

Entrenched Workflows and Legacy Systems

Many industries built their digital foundations during the peak of the MP3 era. Radio broadcasting systems, podcast hosting platforms, DJ software, and archiving systems are often hardcoded to ingest, process, and distribute MP3 files. Upgrading these end-to-end infrastructures to support AAC requires substantial time, testing, and capital. Since MP3 continues to get the job done, many enterprises see no return on investment in migrating to AAC.

The “Good Enough” Quality Factor

At lower bitrates (such as 64kbps or 96kbps), AAC is objectively superior, preserving high-frequency details that MP3 completely discards. However, at higher bitrates like 320kbps, the human ear cannot reliably distinguish between a libmp3lame MP3 encode and an AAC encode.

Because modern internet bandwidth and storage costs have plummeted, the necessity of squeezing audio into ultra-small file sizes has diminished. Encoding at 320kbps using libmp3lame provides transparent audio quality while bypassing the compatibility and licensing hurdles of AAC.