|
我囤积了大量CD,因为不耐烦每次听音乐时去找盘,准备把经常听的CD保存在电脑中。
经过简单的考虑,在wav flac ape mp3这几个格式中选择了flac格式。
又因为不耐烦GUI程序的繁琐操作,选择了命令行模式。
用到的程序都是些小程序,全部可以apt安装:
sudo apt-get install cdrdao cdparanoia cuetools flac shntool
cdrdao 读写CD,用来复制CD很不错,但我主要用它来读取CD的toc分轨信息。因为本来想用cdrdao来读取CD数据,但发现cdrdao的输出格式是bin数据格式,而不是wav格式,试了半天没法从这种格式转换为flac/ape/wav/mp3等格式,所以改用cdparanoia来读取CD转换为wav,然后用shnsplit根据cdrdao读取的toc分轨信息将得到的大wav文件分割成小文件,最后用flac程序将wav格式转换为flac格式。
代码很简单:
cdrdao read-toc --device /dev/cdrw1 cd.toc
cdparanoia 1- data.wav
cuebreakpoints -i toc cd.toc|shnsplit data.wav
flac split-track*.wav
rm *.wav
rm cd.toc
运行方式也很简单,到你建的保存目录里直接命令行运行就可以了,得到的文件类似于split-track01.flac。
需要改进的地方:
1、这样运行需要读两次cd,第一次是cdrdao,第二次是cdparanoia,并且要写3轮硬盘,每轮写入的数据都几百MB。可能可以在最开始阶段分轨读取CD track,然后用管道连接各程序,达到只读一轮CD并且只写一轮硬盘的目标。暂时没时间研究。
2、最终文件名没设置好,需要小改进。
3、tag信息全丢失。这个不知道该怎么改进。如果改进后能做到保持tag信息,编码也是一个大问题。
-----------------------
吃饭先 |
|