将整个音频 CD 的 MonkeyAudio (.ape + .cue + .log) 拆分为各个音轨的 MP3

将整个音频 CD 的 MonkeyAudio (.ape + .cue + .log) 拆分为各个音轨的 MP3

我有一整张音频 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包含macCLI 工具,这似乎是所缺少的主要成分。

答案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!

相关内容