FDK 更好

FDK 更好

我写大约一年前,当我尝试为 Cygwin/Windows 编译 FFmpeg 时,根据 FFmpeg wiki 中的声明:

Fraunhofer FDK AAC 编解码器库。这是目前 ffmpeg 中质量最高的 AAC 编码器。需要使用 --enable-libfdk-aac 配置 ffmpeg(如果您还使用 --enable-gpl,则还需要使用 --enable-nonfree)。

然而,最近尝试使用媒体自动构建套件当呈现FDK-AAC构建选项时显示以下内容:

Build FDK-AAC library and binary? [AAC-LC/HE/HEv2 codec]
1 = Yes
2 = No

Note: FFmpeg's aac encoder is no longer experimental and considered equal or
better in quality from 96kbps and above. It still doesn't support AAC-HE/HEv2
so if you need that or want better quality at lower bitrates than 96kbps,
use FDK-AAC.

然而,这个第三方工具是我能找到的唯一一个关于 FFmpeg 默认 AAC 编码器现在优于 FDK-AAC 的参考,而且相关 FFmpeg 维基页面本身保持不变。这是真的吗?如果是,这个信息的来源是什么?

答案1

FDK 更好

FFmpeg AAC 编码器更好的说法是不正确的。

消息来源最初是在FFmpeg 编解码器文档对于 AAC 编码器。我猜作者没有进行全面的个人听力测试。声明已于 2020-05 删除

自 2015-2016 年的一系列活动以来,原生 FFmpeg AAC 编码器没有取得重大改进,因此 FDK 仍然更好。自那时以来最大的变化是使用快速编码器作为默认编码器2018 年初,切换到双循环编码器于 2021-05 。

盲测结果

找出哪个更好的最佳方法是亲自进行严格的盲测。一些最近的例子:

Kamedo2 的 AAC 听力测试
来源:96kbps 和 128kbps 下的 AAC-LC 和 xHE-AAC 个人聆听测试来自 Kamedo2 (2020-09-12)

guruboolez 的 AAC 听力测试
来源:128 kbps 的 AAC 个人盲听测试(六个编码器和 105 个样本)来自 guruboolez (2020-10-17)

正如你所看到的,两个听众一般评价 FDK 优于 FFmpeg AAC。但是,请记住:

  • 这些测试人员可能对源内容非常熟悉。
  • 普通听众可能听不出差别。
  • 图表可能看起来有很大差异,但实际上差异可能很微妙(但我自己没有尝试过)。
  • 质量是主观的:您必须自己比较才能决定。

何时使用 FDK-AAC

  • 如果 AAC 质量是最重要的因素。
  • 如果您需要 AAC-HE/HEv2,因为 FFmpeg AAC 仅为 AAC-LC。
  • 您不介意编译ffmpeg。libfdk_aac 被视为非自由且与 GPL 不兼容,因此您不会找到许多预构建的ffmpeglibfdk_aac 支持。所以这就是您必须编译的原因。

FFmpeg AAC:可能足够好了

  • 与 libfdk_aac 相比,使用更高的比特率。如果听起来很糟糕,请增加更多比特,使用不同的 AAC 编码器,或使用不同的格式,例如 Opus 或 FLAC。
  • 尝试一下-aac_coder。查看ffmpeg -h encoder=aac哪个是您的默认值ffmpeg,并与其他编码器进行比较。

答案2

fdk_aac 比原生 aac 更稳定。我们正在进行大量的流式转码,如果源原生 aac 编码器出现问题,就会开始产生垃圾,并且无法恢复。适用于最新的 4.2.x 版本。此外,与 libfdk 相比,原生编码器速度较慢(当您在服务器上进行 100 次以上的编码时,速度会逐渐增加)

相关内容