我有一整张音频 CD,被翻录成 MonkeyAudio ( .ape
) 格式的单个音频文件,以及.cue
和.log
文件(使用“精确音频复制”,来自.cue
文件中的注释)。
如何将这个大型音频文件分割成单个音轨的 MP3 文件,最好是使用.cue
文件中正确的 ID3 信息?
答案1
我用CUE 分配器,非常有效,仅限 Windows。
答案2
您可以使用CUE工具,.cue
要做到这一点 - 将文件或.ape
文件与同一目录中的另一个文件一起加载,选择提示样式和 mp3 输出的曲目,它将自动完成整个过程。
答案3
shnsplit
在 Ubuntu 14.04 上
sudo add-apt-repository -y ppa:flacon
sudo apt-get update
sudo apt-get install -y flacon
shntool split -f *.cue -o flac -t '%n - %p - %t' *.ape
flacon
是的 GUI shntool
,但它配备了所需的所有编解码器……否则我收到错误:
shnsplit: warning: failed to read data from input file using format: [ape]
shnsplit: + you may not have permission to read file: [example.ape]
shnsplit: + arguments may be incorrect for decoder: [mac]
shnsplit: + verify that the decoder is installed and in your PATH
shnsplit: + this file may be unsupported, truncated or corrupt
shnsplit: error: cannot continue due to error(s) shown above
尤其是flacon
电力供应协议提供了mac
所依赖的软件包(Monkey 的音频控制台),其中flacon
包含mac
CLI 工具,这似乎是所缺少的主要成分。
答案4
这是我使用的脚本(它的依赖关系在注释中):
#!/bin/bash
# ll-cue2mp3-320.bash
# cue and audio file basename must be the same. Usage:
# ll-cue2mp3-320.bash `basename *cue .cue`
# It makes mp3 folder in the dir containing rip, put splits
# there in the format 'trackNumber - trackTitle', and convert splits
# to mp3s. Tags are not transfered to the newly born mp3s.
#
# You can specify the this format with a second arg. Default value
# is '%n - %t'. Other options (them are lltag options):
#
# %a means ARTIST
# %t means TITLE
# %A means ALBUM
# %n means NUMBER
# %g means GENRE
# %d means DATE
# %c means COMMENT
# %i means that the text has to be ignored
# %F means the original basename of the file
# %E means the original extension of the file
# %P means the original path of the file
#
# Dependences: lltag, lame, cuetools, shntool, flac, wavpack,
# parallel, ape support (if you're going to split ape files)
# Don't forget to put input args in quotes, e.g:
# ll-cue2mp3-320 "name of the cue file" "%a - %t"
#
# TODO:
# convert tags to utf-8 - if they are not
# parsing 1st arg:
fl="$1"
if [ -e "$fl".flac ]; then
ex="flac"
elif [ -e "$fl".ape ]; then
ex="ape"
else [ -e "$fl".wv ]
ex="wv"
fi
# parsing 2nd arg:
frmt="$2"
frmt=${2:-"%n - %t"}
# splitting the dump:
mkdir mp3
cuebreakpoints "$fl".cue | shnsplit -o flac -d mp3 -a split "$fl".$ex && \
cuetag "$fl".cue mp3/split*\.flac
cd mp3
# renaming splits basing on tags:
for i in `ls`; do
lltag --yes --no-tagging --rename "$frmt" $i
done
# converting splits to mp3:
parallel -j+0 flac -d {} ::: *\.flac
parallel -j+0 lame --cbr -b 320 -q 0 {} ::: *\.wav
find . -name "*.flac" | parallel -j+0 rm
find . -name "*.wav" | parallel -j+0 rm
rename 's/\.wav//' *
# done!