常被人问起mp3压缩的问题,想起之前我曾经写过的两篇关于mp3压缩和播放的介绍,决定重新整理一下,扩充些新的内容,于是,就有了这篇攻略。


一、制作篇

制作mp3曾经是一件十分hard-core的事情,但是这已经是很久很久以前了。今天,有大把的软件可以让你把一张CD放进驱动器,点击一个按钮,然后整张CD就被压制成一个个mp3文件,包含齐全的音乐tag,自动分类管理,等等。也出现了wma、ogg等新的文件格式,各具特色,似乎比mp3更有生命力,我们这里不打算讨论mp3和wma孰优孰劣(这就像电视游戏和电脑游戏那个好的问题一样),但是至少有一点可以说——mp3是不差的,如果你和我一样,以mp3作为主要的压缩音乐格式的话,那么就可以往下读了。

好了,回到我们的主题。既然制作mp3像上面说的那样简单,干嘛还要攻略呢?推荐一款软件不就行了么?这就涉及到一个被称为“完美主义者”的概念,Internet上有很多bt的角色干了不少bt的事情其实就是“完美主义”的体现,跟他们相比,想压制一些属于自己的、高质量的mp3的人就多得多了,上面说得那种click-n-make的软件有可能会带来这样的一些问题:

  • 非专业的处理可能损失掉过多的音乐细节,尤其是当你使用的是高质量的原版CD的时候。
  • 缺乏定制能力,虽然省事,但是当你有些不满意时你也没办法。
  • 不够酷。

如果这些是你不能接受的,那么,就跟随下面介绍的方法,快速成为一名专业的mp3 maker吧!

首先,我们就必须明白mp3制作的每个细节。制作mp3你需要这样的一些东西:

  • 一台足够快的电脑,本篇介绍的是基于Windows的解决方案(基于Linux以后补上),所以你的电脑最好是能够顺畅运行最新版Windows系统的PC,在压制过程中最关键的因素是CPU,其次是系统的IO,这些部件越快越好。
  • 一个CD ripper软件,用来把CD上的音轨无损的抓下来,存放成wav文件。
  • 一个mp3 encoder(编码器),用来把wav文件压缩成mp3。

其实也就是这两个步骤,也满简单的。目前,在Windows平台下最好的CD ripper是EAC。最好的mp3 encoder是LAME。如果你本身就是骨灰级玩家,你应该自己去下载和安装这两个软件(其中LAME还需要自己编译),如果不是的话,你可以下载我编译和打好包的文件

好了,准备就绪,请找一张你音质较好的音乐CD,开始!
1、建立一个目录用来安装你的EAC和LAME软件,以下我们假定你装在C:\Tools下面。
2、把eac-****.zip解压到C:\Tools\EAC,把lame-****.zip解压到C:\Tools\LAME。你应该能够在C:\Tools\EAC下看到EAC.exe这个文件,你可以在桌面或者Start菜单建立这个文件的快捷方式以备后用,你还应该在C:\Tools\LAME下看到lame.exe和lame_enc.dll两个文件。可能你已经注意到LAME是一个命令行程序,但是在我们的任务中你不用直接操作这些参数,你完全可以使用EAC来调用它。
3、现在运行EAC.exe,它会提示你进行一些一般性的设定,例如光驱检测之类,你就照做就好了。有些发烧友还会用一张盘片来修正光盘偏移量,这个既麻烦又不是很必须,一般的人就不用了,有兴趣的可以去短歌行研究。
4、选择菜单:EAC|Compression Option,选择External Compression页,圈选”Use external program for compression”选项。在”Parameter passing schema”下拉列表中选择”LAME MP3 Encoder”。然后点击Browse按钮找到并选中C:\Tools\LAME\lame.exe。设置你需要的bit率(“Variable Bitrate 160kBit/s”在绝大多数情况下都是个不错的选择)。

选择其他页可以设置一些例如自动生成mp3 tag之类的选项。

点击OK关闭设置对话框。
5、现在把你的CD放进驱动器,EAC应该立刻读取并识别出其中的tracks。如果EAC没反应,那么可能是ASPI驱动的问题,我的下载包中有一个wnaspi.dll文件,把它也拷贝到C:\Tools\EAC下,在EAC中选择菜单:EAC|EAC Options,在Interface页中选择”Installed external ASPI interface”,重启EAC,这次应该读出音轨了。
6、选择菜单Database|Get CD Information From|Remote freedb…(或者使用快捷键Alt+G),这将连接远程的freedb服务下载CD的专辑信息和曲目名称信息(什么?你不能上网??那你怎么读到我这篇文章的?。。。这样你自己输入相关信息好了,别忘了下次上网时把你填写的曲目提交给freedb,造福人类)。
7、选择你要压制的曲目,点击左边的MP3大按钮(如果你什么也没选,那么整张CD都会被压制),EAC会提示你输入保存路径。此后EAC就会开始提取音轨,每个音轨提取完毕就会调用你的LAME来进行压缩(会弹出一个命令行窗口,显示LAME压缩状态)。

That’s all.

二、播放篇

你会播放mp3么?这个问题恐怕是个人就会不屑一顾,这么简单的事情,winamp谁不会用啊?网上还有好多的插件,像dfx之类,可以改善播放音质。。。嗯,我想说的是,其实播放mp3也不是这么的简单!下面引用某位前辈的分析(我修正了部分out-of-date的信息):

首先,衡量播放mp3的播放器质量好坏关键有几点(抛开音源文件的好坏这些外部因素不说),单就mp3播放器的内部播放构成而言,解码器(decoder)和音频输出(output)是两个最关键的因素。winamp自2.20版本以后购买了MP3的发明者FHG公司的专业解码器,并且在2.70版本以后优化了其解码器的不良算法造成的音质失真。。。就音质而言,winamp的解码器可以更换其他的插件,比如in_mad.dll、in_mpg123.dll等,目前在国外比较流行mad,而mpg123在德国和日本比较流行,英国的一个音频网站作过测试,winamp自带的解码器和mpg123的改良版本表现优异,mad比较一般,我个人感觉这三个插件都差不多,在我的设备上听不出大分别,可能是我设备不够好吧,不过mpg123改良版播放的声音比较清亮,我个人比较喜欢。注意!这两个插件的设置请设在24bit,解码效果比16bit好很多(可能有部分很老的声卡不支持,但是连板载的声卡都支持了),而winamp只要换个output插件就基本可以实现24bit解码,下面我就说说如何更换output插件以实现让mad、mpg123等解码器实现24bit解码。

专做winamp插件的作者peter制作了两个output软件,分别是out_wave.dll ssrc和out_directsound.dll ssrc,这两个输出插件都带了ssrc,ssrc的作用是优化因为声卡的不良src算法带来的声音失真问题。。。声音变的清晰、明亮,以前单纯用声卡自带src给人浑浊的感觉消失了——不过,用了这个软件,cpu的占用大了一些,但为了音质好点,cpu占用大点也没大关系了,反正大部分时候你的cpu都闲着。具体设置是在winamp中选择菜单Option|Preference|Output里面选择有ssrc的那项,然后在Resampling选48000Hz和24 bits per sample(如果你真的使用了某种该死的老爷声卡,24bit可能会挂,那么就用16吧,也不错的)。解码器的设置也类似,在Input里选in-mad.dll或in_mpg123.dll。。。
最后说下为什么解码器要设置为24bit,有专业文章认为:“mpg123和mad之所以能改善音质,是因为能真正做到24bit播放,在译码过程中把其它16bit译码技术未能解读的资料,一一钜细无遗地表达出来,无形中令音乐内容顿时丰富起来,提高音质。”另外,就算所播放的歌曲本身是用16bit压缩,使用24bit译码也一样有好处,因为在每次译码过程中,都会不能幸免地出现资料流失,假如音乐来源是 16bit,而又找回同样是16bit译码技术播放,这种流失(例如16-1)令出来结果一定是少于16bit。如果使用24bit译码的缘故,因此就算有同样流失情形发生,音乐信息也是在24bit解读速度中发生,无碍本身16bit压缩的歌曲内容。

最后提一提目前在网络上流行的以dfx为代表的dsp软件,这类软件被专业音频爱好者疵为“味精”,为什么呢。参考下面的文章:“使用dfx不单不会提高winamp播放的音质,反会失真下降,一般人之所以听了dfx渲染后的mp3比原来的好听,其实是一种声音心理学上主观对音效的接受,注意,是‘音效’而不是‘音质’,所谓的提高音效是指用一些矢量化算法把音场数码化的扩大,让人耳听到的音乐仿佛是由某些场景发出来的——比如音乐会、运动场、club等。但是,改变音效的同时对音质作了污染,一般的音乐发烧友是不提倡用dfx等dsp软件的,dsp插件数字味太浓,没有音乐味了。”

怎么样?知道了吧,目前的计算机中不diy就达到完美的东西是没有的。还是那句话,如果你本身就是骨灰级玩家,你应该自己去下载和安装这几个软件(基本上都需要自己编译),如果不是的话,你可以下载我编译和打好包的文件:winamp 2.91 or winamp 5

三、拾遗篇

1、利用EAC还可以作音乐光盘的镜像,或者压制其他流行的压缩格式,例如wma、ape等——这两种格式使用最新版本的EAC内置的插件就可以实现,你只要在压缩选项中不要选择外部压缩程序,然后在Waveform页选择对应的格式即可。

2、winamp的Input插件选择有些怪异,如果有多个针对mp3的Input插件,它可能不会使用你要的那个,所以我的办法是把其他的mp3解码器统统删掉或者move到其他目录去。
3、我的压缩包中也包含了ape解码器。
4、如果你喜欢小巧快速,那么请使用winamp 2.91,这是到目前为止最稳定快速的播放器,如果你喜欢花哨一点的界面和完美的中文显示,那么用winamp 5吧,千万不要使用那个垃圾3.*的版本。
5、关于mp3vbr和LAME的补充:最早的mp3文件的取样bit率范围是恒定的,但是其实一般的音乐的频率范围是动态改变的,所谓的vbr(variable bitrate)就是编码器在编码过程中通过对音乐频率的分析动态的确定bit率,这样的可以最大限度的利用每一点空间,往往造成的结果就是同等音质的情况下vbr的文件更小。LAME是最早支持vbr的encoder,而mpg123则是最早支持vbr的decoder。EAC其实允许你细调LAME的很多参数,这个你可以慢慢研究或者在这里讨论 :D 。另外,如果你一定要单独使用LAME,你可以找一个图形化的界面来使用,例如流行的RazorLAME,他内置了不少不同音质的preset供你选择,十分方便。
6。关于mp3 tag:mp3的标签(metadata)支持id1和id2两种格式,区别在于后者提供更多的信息(甚至歌词都有),目前大部分播放器都支持id2。有了大量的mp3之后,管理是个问题,这里有几个建议:

  • 每个mp3至少要填写artist和title两个属性,如果可能的话最好还加上album、genre、year、track几项。
  • 把不同的艺术家的音乐分目录存放,最好的目录层次是:艺术家-专辑-歌曲。
  • 使用一个好用的工具帮助你管理这些音乐,快速的修改tag和批量的更名,例如我使用的mp3 explorer就还可以。

好了,就到这里吧,祝各位好运!