LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 848|回复: 0

纯命令行模式将音乐CD保存为分轨模式的flac文件-求高人改进,新手可参考使用

[复制链接]
发表于 2009-12-13 19:55:09 | 显示全部楼层 |阅读模式
我囤积了大量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信息,编码也是一个大问题。

-----------------------
吃饭先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表