开年第一折腾:AAC 编码器

2020 年 1 月 1 日零点,我就在搞 AAC 编码器。
名副其实 2020 年第一折腾吧。

起因是这样的,我发现一直以来用的 AAC 编码格式—— foobar2000 调用的 qaac 256kbps CBR,居然在索尼 MP3 里被认成了 261kbps。
然后这个索尼 MP3 不是按码率来显示不同的磁带嘛,261kbps 就跟 320kbps 一起去显示成灰色的 JHF 磁带而不是蓝色的 AHF 磁带了。

要知道我之前压 320Kbps ABR 会显示 448kbps 但反正都是 JHF,这 AHF 显示成 JHF 让我强迫症都犯了,反复实验发现是 qaac 编码器的问题,不管用 CBR、VBR、CVBR 还是 ABR,就是不能在索尼 MP3 上显示正确的码率。

然后我印象中正确显示 AHF 的 AAC 文件也很多,我就去翻了一下,发现下面三种文件是正确显示或者接近正确显示的:
iTunes Store 出售的 iTunes Plus 音乐文件(256kbps)
iTunes 自己压出来的 iTunes Plus 标准 AAC 文件(256kbps)
foobar2000 用 Nero AAC 编码器压出来的 256kbps CBR AAC 文件(255kbps)

等等?我怎么会有 Nero 压出来的 AAC?

我一直有印象就是苹果的编码器,也就是 iTunes 或者 qaac 编码器压出来的是最好品质的 AAC,而 Nero 的要差一点,为什么我以前会用 Nero 来压的??

很久以前就知道 AAC 作为有损编码其实比 MP3 更优秀,而将 AAC 作为对我来说不装逼的实质上的“无损”格式用来翻录音乐进行永久保存。但是我显然犯了轻信理论的错误,光看网上的文章而没有自己动手查看过翻录的 256kbps AAC 的频谱。而当我现在真的拿了 Adobe Soundbooth 来检查频谱的时候,发现正和这篇文章所说的那样,Nero 编码器的 256kbps AAC 是有缺陷的,和 MP3 类似一样少一截高频。

我疯了,1 月 1 日当天我花很多时间用我当时唯一能找到的可以让索尼正确显示的方法——iTunes 翻录,重新压了很多 AAC。首先把无损(还好有很多都能下载到,不然用 EAC 重新抓轨又多花很多时间)用 Daemon Tools 加载成虚拟光驱,如果 CUE 文件不能直接加载就用 foobar2000 转成带 CUE 的 WAV 再加载;iTunes 翻录成 AAC,再从 iTunes 的库里删掉新导入的音轨,文件剪切出来替换原来的旧 AAC 文件……
虽然麻烦,但是为了准确的 AAC 码率,也没办法不是么。

于是我准备写一篇日志来阐述一下 iTunes 压 AAC 的优越性,顺便下载了一个 1.4.8 的 foobar2000,我本来还在用 1.3.17 呢。
接着我发现 1.4.8 支持 FDK 的 AAC 编码器,就去把 FDK AAC 编码器的环境也准备好,打算一起加入横向比较。
然后我又发现,1.4.8 调用 qaac 压出来的 CBR、VBR 和 ABR,在索尼机器上显示出来的码率都正常了,完全不超过预设码率。

这一天不是纯折腾吗??

算了,好歹给我发现 1.4.8 是好的,我以后可以安心用 foobar2000 编码了,然后横向比较也依然是要做的,至少给自己建立一点编码的信心。

横向比较用的 sample 是『キラーストリート』第二张碟第八轨「リボンの騎士」,女声,编曲不虚。
用来比较的格式有如下几种,从无损到各大编码器的 AAC。实际上像 ALAC 这样的无损编码器也不过是 800-900kbps 的水平,体积是我折腾来折腾去的 256kbps AAC 的三到四倍,如果不在乎这个容量差别的话真是直接用 ALAC 省心了,就算要转成别的格式也毫无心理负担。想想十来年前我还在用 32GB 的 iPod,当年的 iPhone 容量是 8GB 旧款起步 16GB 旗舰款乞丐,顶配 64GB,如今已经是 32GB 旧款起步 64GB 旗舰款乞丐顶配 512GB 了,容量翻了四到八倍。我现在的音乐总量也就 150GB 不到,哪怕全用无损来装也就是一张 1TB 的 TF 卡的事情(虽然很贵),预期五到十年后的未来的话,无损恐怕也不是很奢侈的选择,当然即便在当下我依然选择 AAC。

比较方式是拖进 Adobe Soundbooth 肉眼看频谱,我知道玄学家可能会有被截断的高频实际听不出而低频可能更丰富这种说法,但我只追求更准确更均衡的还原,而且码率越低本来就是会截掉越多的高频,所以我觉得拿高频作为参考不会有错。

无损的 ALAC,因为拖不进 Adobe Soundbooth 所以转成了 WAV,看频谱是一样的,作为标准频谱。

据说比别家 AAC 编码器都好的 FDK AAC 编码器,即便要自己动手编译依然有很多人趋之若鹜。编码格式 256kbps CBR,选 VBR 最高只能选到大约 180kbps 还是放弃吧。这出来的效果完全不如吹得那么好,大约 16.5KHz 以上的部分被完全截断。

iTunes 以 iTunes Plus 标准压出来的 256kbps VBR,非常接近无损的频谱。

如今依然还有很多人压 LAME,于是拉个 LAME 320kbps 作为背景板。20KHz 以上全部截断。

Nero AAC 编码器 256kbps CBR。18KHz 以上截断,但是偶有一些高频被稀稀疏疏地压进去。

qaac 256kbps CBR,和 iTunes Plus 的图无异。

qaac 256kbps CVBR,实际上的平均码率会突破 256,频谱上也没什么差别。

qaac 256kbps VBR,理论上应该是和 iTunes Plus 相同的压制参数,靠肉眼也看不出区别。

qaac 320kbps ABR,可能是 mora 商店的品质?(又或者 mora 用的是 VBR)。和上面一幅图滚轮 AB 对比可以发现 320 比 256 的频谱图丰满一点点,实际听起来基本上应该是完全忽略不计的。

对了,上面的频谱图传个无损附件以便参考。
soundbooth_png.7z

做一张图表。文件尺寸按写入不到 100KB 大小的封面和 ID3 信息计算,作为一个实际使用情况下的参照,基准是 iTunes Plus(100%)。

总结:
1. 在 foobar2000 各种编码类型里,qaac(苹果)编码器制作的 256kbps 以上 AAC 依然是性能最好的选择。
2. iTunes Plus 的实际编码类型恐怕不是像网传那样是 256kbps VBR,而是 256kbps CVBR。
3. iTunes 在标准方面依然是做得最好的,同样是实际码率超标,iTunes 自己压出来的文件可以被索尼准确识别为 256kbps。
4. 求求你们别再用 MP3 压片了。
5. 请更新 1.4.8 版以上的 foobar2000。

开年第一折腾:AAC 编码器》有7个想法

  1. Shane

    iTunes导入设置里写了iTunes Plus的编码:

    详细信息
    128kbps(单声道)/256kbps(立体声),44.100 kHz, VBR。

    回复
  2. 笛卡尔的结局

    楼主选错fdkaac的编码方式,给个现成的让你参考一下,xmedia encode,设置里面调成中文界面,可用鼠标把音频文件拖进xe里面,在音频里面找到fdkaac,默认是abr模式,384或者512码率都有,要是不想浪费码率,可以选另外一个质量模式,可选数值是0到5,0=cbr,我选参数5压个dts出来的aac也能能达到340k左右。你那个播放器应该显示的是cbr和cvbr的码率,abr和vbr这些波动码率的就不会显示256之类的了

    回复
    1. popo

      opus低码率不错,高码率只能呵呵,而且硬件兼容性还是差了些。PC这块还好,就是移动端和便携设备支持不给力。
      目前来看AAC还是最好的万金油选择,高码率有alac无损,有损音乐玩AAC LC,HEAACv2也能做到低码率不错的音质。我把近9GB的鬼吹灯音频小说用24kbps HEAACv2转到1.7G。相当给力

      回复
  3. cacheJ

    lame编码器的vbr 不会截断20Khz一下,根据源文件的最高频率自动调整的,之前还达到了24K怕不怕

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注