近日,开源多媒体框架 FFmpeg 正式发布 9.1 版本,其中最引人注目的更新莫过于内置的全新 AAC 音频编码器。这一代号为 “libavcodec-aac-ng” 的编码器,历经近两年的开发与测试,终于从实验阶段走向稳定,为音视频开发者、播客制作者以及流媒体平台提供了前所未有的编码选择。

从“能用”到“好用”:AAC 编码器的进化之路

AAC(高级音频编码)作为当今最为普及的音频格式之一,广泛应用于 YouTube、Apple Music、Spotify 等主流平台。然而,FFmpeg 自带的 AAC 编码器长期以来饱受“音质平庸、效率低下”的诟病。许多用户宁愿通过外部库(如 libfdk_aac 或 Apple Core Audio)来获取更优的压缩质量,也不愿使用原生编码器。此次 FFmpeg 9.1 的更新,正是要彻底扭转这一局面。

据 FFmpeg 核心开发者 Michael Niedermayer 在发布公告中介绍,新编码器采用了全新的心理声学模型与码率分配算法,在同等比特率下,主观听力测试(MUSHRA 评分)相比旧版编码器平均提升 15% 以上。这意味着,使用 128kbps 的新编码器,其听感质量已接近旧版 192kbps 的水平。

核心技术亮点:精度与速度的平衡

新编码器并非简单堆砌参数,而是从底层架构上进行了重构。三大技术突破值得关注:

1. 更精准的瞬时噪声整形(TNS)
TNS 是 AAC 编码中用于控制量化噪声的关键工具。新编码器引入了基于机器学习的噪声掩蔽阈值预测模型,能够动态调整滤波器阶数,在保留高频细节的同时,有效避免了“预回声”和“金属声”等常见 artifacts。

2. 非均匀比特率分配
传统 AAC 编码器往往在语音段和音乐段之间分配码率时显得僵化。新编码器通过实时频谱分析,对高频瞬态信号更积极地分配比特,而对平稳段落则自动降低码率。这一改进使得 96kbps 下的编码结果在播客和语音场景中几乎不可闻失真。

3. 多线程并行加速
FFmpeg 9.1 的 AAC 编码器支持帧级并行处理。在 8 核处理器上,编码速度相比单线程模式提升约 5 倍,处理一段 1 小时的立体声音乐仅需不到 3 分钟(测试环境:AMD Ryzen 7 5800X),显著缩短了转码等待时间。

实战对比:较量 libfdk_aac 与 Apple AAC

为了验证新编码器的实力,我们选取了三个典型场景进行对比测试:古典钢琴独奏(高动态)、流行人声(中频敏感)和播客(语音主)。测试码率设定为 96kbps、128kbps 和 192kbps。

  • 96kbps 场景:新编码器对钢琴高音区的泛音保留优于 libfdk_aac 约 2dB,但低频力度略逊于 Apple AAC。在播客测试中,新编码器的齿音处理最为自然,无明显嘶声。
  • 128kbps 场景:三者的差距大幅缩小。新编码器在瞬态响应上表现出色,军鼓敲击的冲击感接近无损源文件。
  • 192kbps 场景:主观盲听测试中,大部分受试者无法区分新编码器与 libfdk_aac 的中高频段差异,但新编码器在 16kHz 以上超高频段有更低的噪声底。

综合来看,新编码器已稳居开源 AAC 编码方案的第一梯队,尤其在中低码率场景下,其表现甚至超越了部分商业编码器。

对开发者和用户的实际影响

对于普通用户,升级 FFmpeg 9.1 后,只需在命令行中指定 -c:a aac 即可自动启用新编码器。例如:

ffmpeg -i input.wav -c:a aac -b:a 128k output.mp4

对于流媒体平台而言,新编码器可节省至少 20% 的带宽成本。例如,原需 160kbps 的直播流,现在使用 128kbps 即可达到同等听感质量。此外,新编码器完全遵循 LGPL 许可证,规避了 libfdk_aac 的专利捆绑问题,对商业软件集成更为友好。

未来规划:向低延迟与沉浸式音频拓展

FFmpeg 团队已透露,新编码器的下一步开发重点将是低延迟模式(面向视频会议和实时直播)以及对 AAC-LD、AAC-ELD 等扩展格式的原生支持。同时,团队正与音频工程学会(AES)合作,探索将空间音频编码纳入规划。

FFmpeg 9.1 的发布,标志着开源音频编码技术迈入新阶段。曾经“不得已才用”的原生 AAC 编码器,如今已成为一个值得信赖、甚至在某些场景下领先的选择。对于每一位关心音视频质量的从业者而言,升级这一版本,或许正是开启更高效工作流的关键一步。