FDK-AAC 仍然比 FFmpeg 的原生 AAC 编码器更好吗?

Has*_*ziz 3 audio windows codec ffmpeg transcode

大约一年前,我在尝试为 Windows 编译 FFmpeg 时,根据 FFmpeg wiki 中的前提,以自己的方式工作时写了这篇文章:

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

和...

本机 FFmpeg AAC 编码器。这是目前 FFmpeg 中可用的质量第二高的 AAC 编码器,不需要像此处描述的其他 AAC 编码器那样的外部库。这是默认的 AAC 编码器。

但是,最近尝试使用media-autobuild_suite构建 FFmpeg在使用 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.
Run Code Online (Sandbox Code Playgroud)

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

llo*_*gan 5

FDK更好

FFmpeg AAC 编码器更好的说法是错误的。

源最初位于AAC 编码器的FFmpeg 编解码器文档中。我猜作者没有进行全面的个人听力测试。该声明已于 2020-05 年删除

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

盲测结果

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

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

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

正如您所看到的,两位听众FDK 的平均评价高于 FFmpeg AAC。但是,请记住:

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

何时使用 FDK-AAC

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

FFmpeg AAC:也许足够好

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