2012年1月3日 星期二

Linux下分割APE,并转档至ALAC

(1)如果是中文专辑,.cue文件通常是乱码的 首先确定.cue的编码 我使用vim 在.vimrc中添加:
            set fileencodings=utf-8,gb2312,gbk,gb18030
            set termencoding=utf-8
            set encoding=prc
这样打开.cue后不再乱码 然后输入:set fileencoding 出现编码方式,我的出现euc-cn的编码方式,是GB2312的别名
或者使用enca
            $ enca -L zh_CN 文件名.cue
然后进行转码:使用iconv
            $ iconv -f GB2312 -t UTF-8 文件名.cue -o 输出文件名.cue
(2)分割整个ape文件(参照:http://www.cnblogs.com/stephenjy/archive/2010/03/01/1675835.html)
安装shntool,以及mac解码器。 shntool可以用apt-get(ubuntu)或者yum(fedora)安装 mac解码器必须编译安装。直接yum install mac安装后,分割不成功。
到 http://shnutils.freeshell.org/shntool/ 下载 Helperprogram下的ape的patchrc 依据info,
执行: $ CXXFLAGS="-DSHNTOOL" ./configure
             $ make
             $ make install
分割文件
             $ shntool split -t "%n.%p-%t" -f 文件名.cue -o ape -i ape 文件名.ape
(3)转档
安装ffmpeg(yum install)
执行:
             $ ffmpeg -i 文件名.ape -acodec alac 文件名.m4a
如果嫌逐个麻烦:
到该文件夹下,首先找出类型为.ape的小于200M的单个歌曲文件,然后 逐个转换
执行:
             $ find -type f -size -100000k -name '*.ape' | sed -e 's/\.ape$//' | xargs -I @ ffmpeg -i @.ape -acodec alac @.m4a
加强版(歌曲名里有空格(It's True.ape))
             $  find -type f -size -100000k -name '*.ape' -print0 | sed -e 's/\.ape//g'| xargs -0 -I @ ffmpeg -i @.ape -acodec alac @.m4a
最后删除原先的单个ape
             $ find -type f -size -100000k -name '*.ape' -print0 | xargs -0 rm




沒有留言:

張貼留言