FFmpeg 9.1's new AAC encoder

413 points · 132 comments on HN · read original →

Points and comments are a snapshot, not live.

Lynne rewrote FFmpeg's AAC encoder, claiming it is now the best AAC encoder by metrics.

Lynne fully rewrote FFmpeg's AAC encoder, reengineering rate control, RDO, and all coding tools (PNS, TNS, I/S, M/S). Metrics using Zimtohrli and ViSQOL show it outperforms qaac and fdk-aac at all tested bitrates (64-256 kbps). The encoder is strictly CBR and optimized for 48kHz audio. It prints stats on uninit, including lambda, TNS, M/S, I/S, and PNS usage. The author tuned it by ear on 48kHz data and tested on 3000 tracks, but notes little speech content was tested. The merge and nightly builds are available.

What commenters are saying

Commenters largely welcomed the new encoder, with several noting visible quality improvements at medium and high bitrates. Some found artifacts: a ticking sound at 192 kbps with TNS on the fatboy_30sec sample, and a "smeary and metallic" sound at 64 kbps on another sample. Lynne engaged, asking for build and test help for the TNS issue. A portion of the thread debated whether 48kHz is the modern audio standard, with strong yes and some no camps. One commenter noted Opus still dominates the metrics and is royalty-free.