星期五, 三月 11, 2011

在Linux下如何对付一张CD

如题,在这个数字化音乐在网上可以很容易获得的时代,还有人记得CD么?还有人记得光驱么?当我终于良心发现,从卓越买了一张CD专辑后,我发现我要面对的问题是——难道我每次听歌都要忍受这个古老光驱的嘎吱嘎吱?虽然说我的光驱在这4年的时间内,使用过的次数屈指可数,但是……当我弹出光驱,看到里面的一层灰……当我把CD放进去,感受着本本的震动……我嚼得,这样,是不行滴。

// ------------------------- 下面是失败的方法 T_T -----------------------------
第一个想法,很自然的,是把CD的数据复制一份到硬盘上!听起来很简单,是吧?并且把CD放进去的时候,貌似Fedora很体贴的告诉我这是一张音频CD,问我要怎么处理,其中,有一个处理方式是——用Barsero光盘刻录器打开。根据经验,光盘刻录软件嘛,总有把光盘转成镜像文件的功能~好吧,打开看看,它提示我,没有找到刻录盘,所以只能转成镜像文件,嗯,听起来不错,然后看看镜像文件的格式……呃……bin/cue的看起来比较眼熟,就它吧……开始嘎吱嘎吱……九牛二虎之力,光驱都发烫了,总算完成了!

接下来,怎么对付这个bin和cue文件呢……不幸的是,我试过了各种方法,包括用bchunk将其分解成单个音轨文件,用cdemu挂载bin/cue文件做成虚拟光驱,但是,不知道是因为复制过程中出现了某些问题,还是因为这些方法不对,我得到的……总是一堆噪音文件……

// ------------------ 下面是成功的方法 ^_^ ---------------------

看来我一开始就不该相信那些系统给出的最直接的方法,在Windows下直接“下一步”可能没什么问题,但是用了这么长时间的Linux,我早就不对它的娱乐功能有什么太高期待了(用它工作是很好没错,可是要用来娱乐,你总是得花点时间调教它的),现在问问Google大神吧……

结果真是很简单,果然一开始我就应该抛掉那些图形界面的工具,它们不知道背地里隐藏了多少错误信息……现在要登场的是——cdparanoia!用yum或者apt-get轻松的安装吧~源里面有滴~装完后,一条简单的命令
cdparanoia 1- -w
表示提取第1条到最后一条音轨,输出成wav格式(嗯,无损的wav格式)。按下回车后我发现字符界面真是清爽啊!还有表情小人看的有没有!!!要是复制途中错误多了小人还会从笑脸变成苦脸的有没有!!!谁还要看图形界面那种什么都没有的进度条啊……

好了,等了一段时间后wav文件顺利生成,播放器打开看看吧,总算是有正常的声音了,收工收工~~~

……8过,为什么这一整张CD变成一个wav文件么?难道每次听我都要从头听到位,想换歌还得手动搜进度条?……

呃,那个……刚才第一种倒霉的方法生成的cue文件……还没删吧?啊?删了?删之前你好歹看一下这个才几百字节的玩意儿是什么呀~里面记录着没一条音轨的长度信息啊~~Barsero再不济,至少是把各条音轨正确的区分出来了。不过删了也没关系,一个文本文件而已,猛击这里查看怎么自己写一个cue文件。呃,当然,应该也有工具可以生成cue文件的,不过我没费心找……

然后,有了cue文件,用deadbeef就可以顺利播放了。中间有个小插曲,我用0.4.2的deadbeef播放的时候,没有分轨信息出现,后来发现是这个版本的deadbeef会直接跳过没有title信息的音轨,0.4.3及之后的版本就没有这个问题了,当然,也可以(或者说,为了今后听歌的方便,也应该)给每个音轨加上title信息。

当然,以wav庞大的体积,绝对不是一个存储音乐的好格式,用
flac *****.wav *****.flac
把它转成同样无损的flac格式吧~没有flac这个命令的话继续用yum或者apt-get来安装,转成flac之后,刚才的cue文件一样可以用滴。

好了,现在差不多可以收工了吧?但是,如果想在便携MP3上听歌怎么办呢?废话,当然是拷进去了。什么?你要转成MP3格式?或者MP3不能读取分轨信息?那你还买CD干啥咧,直接从网上下一张专辑吧……不过既然都到这一步了,我们继续吧……这个工作据说可以用shntool来完成……继续yum/apt-get……你说我要听个音乐容易么我!

首先,把这个大的flac分成单独的音轨:
shnsplit -o flac -f ****.cue -t "%p - %t" -d "album" ****.flac
man 一下,可以看到关于输出文件名的说明:%p表示歌手,%a表示专辑,%t表示歌曲标题,%n表示音轨号,这些可以在cue文件里面说明,然后输出成你想要的文件名。-d表示输出到指定的文件夹下。

回车之后,如果你的播放器支持flac的话,把分割出来的flac文件拷进去,就OK了。

如果要转成mp3格式的呢?恭喜,你得到了一个继续使用yum/apt-get的机会!安装lame吧,名字看起来很熟悉吧?MP3编码用的。然后按照shntool的说明:

shnsplit -o  'cust  ext=mp3  lame  --quiet  - %f' -f ****.cue -t "%p - %t" -d "album" ****.flac
当然,lame后面也可以加入你想要的其他参数,具体的man一下看看吧……

// ============ zen 分割线 =============

最后的最后,当我拿出我的Creative zen small wonder——就是俗称的zsw,是的,它不支持无损格式——的时候,发现上面没空间了,删吧!由于没有Windows下的管理软件,我直接把它当U盘操作了。删完之后,杯具了……直接往里面复制音乐文件的话,在播放器里面居然找不到这些文件!

于是……好消息是:它可以识别SD卡上的文件;坏消息是:天知道要怎么格式化那个SD卡才能被它认出来。我现在在9700上用的,以前在Windows下格式化的卡顺利识别,而另一张闲置的卡在Linux下用mkfs.vfat尝试了若干次,终究还是已失败告终。

其实我想说的是,站在正确的队伍里面是很重要的,虽然我默默的把creative骂了个狗血淋头,但是,作为一个优秀的播放器,它的使用者是很多的!总之,我发现了Gnomad2——
Gnomad2 is a GTK+ music manager and swiss army knife for the Creative Labs NOMAD and Zen range plus the Dell DJ devices using the Portable Digital Entertainment (PDE) protocol.
奔跑着歌颂Gnomad2~yum/apt-get安装(心里默默在流血啊,我这是图啥啊,不就是听个CD么),有图形界面,很简明,把歌复制到zsw上面,断开连接……这次真的可以收工了……