Eu tenho uma pasta chamada Música, que tem subpastas de artistas diferentes, contendo muitos arquivos .flac. Estou tentando converter todos eles para o formato de arquivo .wav e depois para o Apple alac, porque a conversão direta não está funcionando corretamente, mas o problema é que eu já converti alguns deles antes, mas nem todos .
Minha pasta é basicamente assim:
Música / ArtistaX / Song1.flac
Música / ArtistaX / Canção1.m4a
Música / ArtistaX / Song2.flac
Música / ArtistaY / Song1.flac
Música / ArtistaY / Song1.m4a
Basicamente, quero um comando que permita converter apenas os arquivos .flac que não possuem um arquivo .m4a correspondente ao lado deles. No passado, eu simplesmente converti todos eles novamente executando este loop for bruto:
for f in ./**/*.flac; do ffmpeg -i "$f" "${f%.*}.wav"; done && for f in ./**/*.wav; do ffmpeg -n -i "$f" -acodec alac "${f%.*}.m4a"; done && find . -type f -name '*.wav' -delete
Mas isso é muito ineficiente para minha configuração atual.
PS: Se for possível, eu preferiria usar o ffmpeg.
fonte
Respostas:
Por que não procurar apenas arquivos flac, verificar arquivos m4a existentes e converter se não houver arquivo m4a? Apenas um pequeno exemplo:
fonte