Eu faria isso em várias etapas, já que você faz isso raramente. A transparência é mais importante que a automação aqui. Mas uma única linha também é possível. Eu suponho que se você usar apenas um comando para todos os arquivos em cada etapa, é isso que você pretendia.
Você precisa ter ffmpeg
(ou avconv
), shntool
e cuetools
instalado.
Para converter todos os seus .ape
para .flac
no lugar:
find . -name "*.ape" -exec sh -c 'exec ffmpeg -i "" "${1%.ape}.flac"' _ {} \;
Se você instalar o codificador MAC codificado e o decodificador para arquivos APE do link , este primeiro passo é desnecessário. Mas você precisaria compilar com g++
e yasm
. O mesmo vale para os arquivos .tta
, que também são usados com frequência em vez de .ape
.
Divida e nomeie .flac
arquivos:
find . -name "*.cue" -exec sh -c 'exec shnsplit -f "" -o flac -t "%n_%p-%t" "${1%.cue}.flac"' _ {} \;
Se shnsplit
também for usado para a conversão, substitua o .flac
in "${1%.cue}.flac"
pela extensão do formato do qual você está convertendo.
-
%n
- número da faixa -
%p
- executante -
%t
- nome da faixa
é obtido do arquivo .cue
para os nomes dos arquivos .flac
. Para marcar os arquivos .flac
divididos resultantes:
find . -name "*.cue" -execdir sh -c 'exec cuetag "" *.flac' _ {} \;
Remova os arquivos restantes CDImage.ape.cue
, CDImage.flac
e CDImage.ape
como quiser. Os nomes são únicos, então um simples find . -name "CDImage*" -delete
é suficiente, exceto se Mozart fez uma composição começando com CDImage
, que eu não conheço.
Para que shnsplit
funcione, todos os codificadores / decodificadores necessários precisam ser instalados para que possam ler e gravar arquivos. Módulos para APE (e para o formato TTA) precisariam ser compilados da fonte, os outros pela instalação do pacote (ou seja, FLAC).
Isso funciona para todos os casos padrão em que os arquivos .cue
e .tta
/ .flac
/ .ape
têm o mesmo nome, exceto a extensão.
Observação lateral para os outros : Se você lidar com essa conversão, seus arquivos de origem podem ser de origem japonesa, onde o APE e o TTA eram mais populares do que em outros lugares. Se os arquivos .cue
foram inicialmente codificados por SHIFT-JIS e agora abertos como UTF-8, a shnsplit
step quebrará . Você precisa renomear os arquivos .cue
com
find . -name "*.cue" -exec rename 's/\.cue$/.cux/' -- {} +
e converta os arquivos intermediários para UTF-8 com
find . -name "*.cux" -exec sh -c 'exec iconv -f SHIFT-JIS -t UTF-8 -o "${1%.cux}.cue" -- ""' _ {} \;
antes de tentar executar as etapas acima. Não se esqueça de se livrar dos arquivos .cux
quando terminar:
find . -name "*.cux" -delete