Hacker News 中文摘要

RSS订阅

FFmpeg 9.1 新版 AAC 编码器 -- FFmpeg 9.1's new AAC encoder

文章摘要

FFmpeg 9.1的AAC编码器经过全面重写,重新设计了码率控制、RDO及所有编码工具。根据Zimtohrli和ViSQOL等指标评估,其编码质量优于qaac、fdk-aac和libopus,成为目前表现最佳的AAC编码器。

文章总结

以下是FFmpeg 9.1新版AAC编码器公告的中文重述:

标题:FFmpeg 9.1 全新AAC编码器发布

核心内容: 开发者Lynne对FFmpeg的AAC编码器进行了全面重写,涉及码率控制、率失真优化(RDO)以及所有编码工具(PNS、TNS、I/S和M/S)。根据Google的Zimtohrli和ViSQOL指标以及个人听感测试,新版编码器在64kbps至256kbps码率范围内,性能优于qaac和fdk-aac等竞品。测试数据表明,在多数码率下,新版编码器的Zimtohrli得分(越低越好)和ViSQOL得分(越高越好)均表现最佳,仅opus在部分码率下略胜一筹。

技术细节: - 新版编码器采用严格的恒定码率(CBR)模式,码率波动极小,建议使用-b:a参数而非-q:a(可变码率模式)。 - 编码器优先使用TNS工具,并在此基础上重新实现了PNS、I/S和M/S工具,以提升编码质量。 - 逆向分析发现qaac未进行感知优化,仅依赖频带能量和偏向高频的比特分配曲线。新版编码器改进了这一策略,采用类似曲线并结合掩蔽频带能量进行RDO。 - FFmpeg的AAC解码器在立体声PNS方面存在缺陷,该问题可能也存在于其他解码器中,因此编码器已进行规避处理。 - 高码率下,I/S和PNS等工具会在编码器表现良好时自动关闭,以维持码率稳定。 - 所有编码工具均集成在RDO循环中,不依赖固定规则或任意码率阈值。 - 若需下混或期望输出被下混,建议使用-aacis 0 -aacpns 0参数以保持原始信号相位。 - 编码器主要针对48kHz音频优化,但44.1kHz和96kHz也可正常工作。建议使用48kHz以获得最佳质量。 - 频谱图中可能存在大量空白区域,这是有意为之:被掩蔽的频带会被置零或使用PNS处理,因为相邻频带足够响亮,人耳难以察觉缺失。

使用与反馈: - 代码已合并至FFmpeg主线,可通过编译源码或下载BtbN的夜间构建版本进行测试。 - 编码器在初始化时会输出统计信息,包括平均lambda值、短块比例、TNS使用率、M/S编码使用率、I/S编码使用率和PNS使用率。若发现明显伪影,请提供原始输入样本及该统计信息以便排查。

用户反馈: - 有用户指出44.1kHz音频仍占主流,开发者回应称基准测试主要基于44.1kHz,但针对48kHz进行了听感调优,44.1kHz下的表现已足够好。 - 部分用户测试发现,新版编码器在64kbps下存在轻微伪影,但在134kbps和200kbps下音质出色。 - 有用户报告在192kbps下出现滴答声,关闭TNS后问题消失,开发者已注意到此问题。 - 开发者建议在128kbps下将带宽降至16kHz,160kbps及以上降至18kHz,可使用-cutoff参数手动设置。

评论总结

根据评论内容,总结如下:

主要观点与论据:

  1. 技术改进与兼容性:评论2指出FFmpeg的AAC解码器在立体声PNS(感知噪声替代)方面存在缺陷,编码器已进行规避处理,但该问题可能已困扰小众用户20年。评论3提到编码器主要针对48kHz优化,建议用户使用48kHz以获得最佳质量,但质疑48kHz是否已成为行业标准。

  2. 编码器质量对比:评论5认为Opus编码器在64kbps下性能远超所有AAC编码器,强调这是Opus的展示。评论6指出FFmpeg旧版AAC编码器质量差,存在刺耳伪影,需依赖Apple Core Audio编码器;新编码器有望提升OBS等录屏软件的音质。

  3. 实用性与替代性:评论4欢迎新编码器,希望替代fdk-aac。评论1仅指出链接错误,无实质内容。

关键引用(保留中英文):

  • 评论2:"FFmpeg's AAC DEcoder is busted with regards to stereo PNS... the bug was not found until now."(FFmpeg的AAC解码器在立体声PNS方面存在缺陷……该漏洞直到现在才被发现。)
  • 评论5:"It simply blows all the AAC encoders out of the water even at 64 kbps."(即使在64kbps下,它也完全碾压所有AAC编码器。)
  • 评论6:"FFmpeg's previous AAC encoder produced poor quality output and often had irritating chirping artifacts."(FFmpeg之前的AAC编码器输出质量差,经常有刺耳的啁啾伪影。)

平衡性说明:评论对FFmpeg新AAC编码器持积极态度(改进质量、替代旧编码器),但指出其优化局限(48kHz优先)和Opus的竞争性优势。无显著负面观点。