Life Journal

随笔,及其他

我是 Xiao Xiao,在日本的产品经理,偶尔也写代码,iOS/Mac/Web,偶尔也做设计,爱用 Sketch,偶尔写文字,存在这里。


win下将ape等无损音频转换成Apple Lossless

Apple的iPod系列对常见的无损格式都不支持——这不能不说是一个很大的遗憾。当然,这里面也必然有Apple想主推自己研发的Apple Lossless格式(后文仅称ALAC)的原因。但时至今日,可转换ALAC的转换软件依然少之又少。晓晓今天本也打算体验一把ALAC,但为了将手头的ape转换,可着实费了一把脑筋。下面晓晓给各位总结一下比较可行的方法。

如果你是在Mac OS下的话,那么恭喜你,使用X Lossless Decoder就能实现从各个无损格式格式到ALAC的转换。

在Windows下则没有那么好的轻量级软件了。最常用的xilisoft旗下的软件貌似都不提供支持。值得注意的是,ALAC并不是AAC的变体,所以支持AAC和支持ALAC并没有必然联系。

目前网上有三个解决方案:

  1. 将无损格式还原回wav,再重编码成ALAC。但是晓晓觉得此方法太过于繁琐,而且转成wav后曲目标签信息会全部丢失,需要最后再手动添加,实在麻烦。
  2. 使用iTunesEncode插件。这个插件是06年的一个插件,之后再没更新过。尽管如此,晓晓还是觉得非常好用。出了某些时候会转换失败以外,其他没啥毛病。
  3. 使用新版的ffmpeg。据说从某版本起,ffmpeg就支持对ALAC的编码。晓晓尝试了一下发现,转换完成后找不到输出的文件——晓晓发誓绝对没有设置错误——嘛,所以这个方法也就搁浅了。

所以,目前晓晓使用的是第二种方案。网上给出的该方法的教程绝大多数都是只能对foobar2009 0.8的版本。而在细腻的0.9版本里,设置界面略有小改,晓晓给大家重新做了个演示。下面以最新的foobar2000 0.9.6.2为例:

首先前往http://www.rarewares.org/lossless.php下载iTunesEncode插件。当然,如果你的foobar没有ALAC的解码器,也可以顺便从那里down一个。解压之后,把它放到foobar2000的安装文件夹中去(其实放在哪里无所谓,只要自己知道就好)。然后我们打开foobar2000,点击File -> Preferences,到达如图所示的地方。

1 接下来,点击右侧的”Add New”按钮,在弹出的窗口中的Encoder处选择Custom,如图:

2 接下来就是最主要的部分,按照下图的设置进行设定即可。Display Info不需要和我一致,只要让自己看明白即可。

3

Encoder处输入刚才解压出来的iTunesEncode的可执行文件地址即可。

Parameters处要填写:-e “Lossless Encoder” -a “%artist%” -l “%album%” -t “%title%” -g “%genre%” -y %date% -n %tracknumber% -j %disc% -i %s -o %d

随意更改以上信息导致以后出现ID3标签信息丢失的原因我可不管啦。

设定完之后,可以试一试效果了。先打开iTunes,回到foobar2000,在播放列表中随便选择一首歌,右键菜单中选择convert,Output Format选择刚才设定的M4A,试试效果吧。在转换结束后曲目会自动被添加到iTunes的媒体库中。

遗补:

昨天写完教程后,发现用该iTunesEncode方法转换时,容易出现间或转换失败的情况,10首曲目转完,总会提示有2-3首失败。但是如果手动一首一首转换则不会出现该问题。

晓晓研究后认为,是foobar默认使用多线程转换造成无法正常处理已转换完成的曲目的结果。解决方法很简单,关闭foobar2000的自动多线程即可。设置如图中红框标出的地方所示。

4