自己动手转 AAC

  自从败了 iPod Touch 以后,我就专找 AAC 的专辑下,不过 VeryCD 上的很多专辑都没有 AAC 格式,比如这张 Bryan Adams 的《So far so good》。iPT 不支持 APE,所以晚上研究了一把 APE 转 AAC。

  网上找到了从 foobar2000 里用自带的 convert 功能做转换的方法,原理是调用第三方的 encoder,对 foobar2000 解出来的 PCM raw data 做编码,所以只要是 foobar 支持的音频格式都可以转成你想要的格式[1]

  至于编码器,我还是青睐开源的方案,所以就选了 faac(Freeware Advanced Audio Coder)。SourceForge 上下载的都是源代码,不想自己编译的话,可以在这里直接下载编译好的 binary。

  打开 foobar 的设置,在 Tools 下找到 Converter,点 Add New,然后在 Encoder 里选 Custom。下面是三个最主要设置的填法:
Encoder:填 faac.exe 的绝对路径
Extension:按照 Apple 的惯例,填 m4a
Parameters-w -q 500 -c 22050 - -o %d
注意上面参数中,22050的后面是“- -o”,不是“–o”,两个减号中间有个空格。这个参数是网友推荐的 VBR 最优设置,我用 faac –long-help 查了一下,解读如下:
-w:把编码后的 AAC 数据放到 MP4 容器格式中,这样 iPT 才能识别。
-q 5000:VBR 方式的最高质量,VBR 就不用解释啦。
-c 22050:设置频带宽为 22050 Hz。无损的原始 CD 音频是 44100Hz 的,按照采样定律,采样率要是频带宽的 2 倍,所以这里把频带宽设置为 22050。
:这个单独的减号是让 faac 从 stdio/管道中读取原始音频数据,否则的话 foobar 要先把 PCM 数据写到一个临时文件里,再让 faac 去编码那个 WAVE 临时文件,多了个步骤。
-o %d:告诉 faac 输出文件的文件名,这个 %d 是 foobar 设定的变量,转换时会被替换成用户指定的文件名。

  设定好以后在 foobar 里右击要进行转换的 APE,Convert->…。在 Converter Setup 对话框的 Output format 里选中刚才创建的新 converter,转换进度条走完以后就可以去听一下转出来的 AAC 文件啦,绝对跟原始 APE 一模一样(反正不用专业仪器估计是听不出差别来地:))。

注 1:尽量不要用有损格式转到 AAC,比如 MP3->AAC,这样转出来的效果绝对比用无损的 APE 转到 AAC 要差很多!!!
注 2:关于 AAC 的更多介绍,可以移步到这里围观。

[Update @ 2013-1-26]:在 Mac 命令行下面可以组合使用 madplay 和 faac 来完成 MP3 to AAC 的转换(虽然不建议这么做)。
madplay --output=wave:- test.mp3 | faac -w -q 500 -c 22050 - -o ./test.mp4

Leave a Reply