随笔-0  评论-0  文章-40  trackbacks-0
前面写过一个帖子,记录了从flac根据cue转换为mp3的方法,造福广大出街党。前段时间自己有不少flac要转换,实在没辙于是动手写了个
脚本,用的工具还是上一个帖子里提到的那些,不过用这个脚本只要运行并输入flac以及cue文件路径和输出目录,即可自动完成转换,
并且会生成中间的wav方便需要刻录CD的朋友。如果不需要生成WAV,则请自行在脚本最后添加删除代码即可。

需要的工具如下: shntool cuetools flac lame
Ubuntu以及debian党请:sudo apt-get install shntool cuetools flac lame || 其他发行版同学请领会精神~

<------------------------------------------------------------ 华丽分隔线!------------------------------------------------------------------->
#!/bin/bash
# 参数序列: 待转换大flac文件名 对应cue文件名 输出目录
in_flac_name=$1
in_cue_name=$2
out_dir=$3

std_null=/dev/null

#参数个数检测
if [ $# -lt 3 ]
then
    echo "参数序列: 待转换大flac文件名 对应cue文件名 输出目录"
else


#在outdir下的三个子文件夹, 用于存放对应的生成文件
def_outdir_mp3="$out_dir/Mp3"
def_outdir_flac="$out_dir/Flac"
def_outdir_wav="$out_dir/Wav"


#将一个大的flac文件展开为多个小文件
mkdir $def_outdir_flac
shnsplit -o flac -f "$in_cue_name" -t "%n - %t" -d "$def_outdir_flac" "$in_flac_name"


#为展开的flac文件写入歌曲信息
cuetag $in_cue_name $def_outdir_flac/*.flac >> $std_null


#flac-->wav-->mp3 :-)
mkdir $def_outdir_mp3
mkdir $def_outdir_wav

for file in $def_outdir_flac/*.flac
do (
#去除文件名前面的路径名和后面的.flac后辍名
__file=${file%.flac}
__file=${__file#$def_outdir_flac}
__wavfile="$def_outdir_wav/$__file.wav"
__mp3file="$def_outdir_mp3/$__file.mp3"

#echo $__wavfile
#echo $__mp3file

#将flac转换为wav
flac -cd "$file" >> "$__wavfile"

#将falc按照最高标准 CBR 320 转换为mp3 :-)
lame --verbose --preset insane "$__wavfile" "$__mp3file"

)done;

#为Mp3写入tag信息
cuetag $in_cue_name $def_outdir_mp3/*.mp3

#不需要wav的同学请在下面添加rmdir操作
fi

<------------------------------------------------------------ 华丽分隔 线!------------------------------------------------------------------->
posted on 2011-04-07 23:03 无毁湖光 阅读(427) 评论(0)  编辑 收藏 引用