Como posso converter minha coleção de músicas FLAC para o Apple Lossless?


13

Tenho uma coleção de músicas de tamanho razoável que mantenho no formato FLAC no meu laptop Ubuntu. Gostaria de começar a tocar essa música no meu Mac e sincronizá-la a partir daí para o meu iPod. As pessoas sugeriram que a melhor maneira de fazer isso é converter minha coleção no ALAC, e eu decidi que é isso que quero fazer.

Antes de mergulhar e escrever scripts de shell personalizados que chamam ffmpegpor algum findcomando complexo , pensei em pedir conselhos.

Como posso converter melhor minha coleção FLAC existente para ALAC, sem perda da qualidade do áudio e preservando todos os metadados?


Hã. Estou surpreso. Eu pensei que haveria uma escolha óbvia para a ferramenta de transcodificação, mas todas as que posso encontrar estão focadas em vídeo.
— RAOF 28/02/12

O que acabei fazendo aqui foi escrever um script Python personalizado chamado metaflac, ffmpeg e AtomicParsley.
— JML

Respostas:


21

O avconv (ou ffmpeg, do qual o avconv é um fork) pode fazer isso na linha de comando:

avconv -i input.flac -c:a alac output.m4a

Ele deve preservar os metadados por si só.

Para fazer todos os flac em um diretório:

for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

Para executar todos os flac recursivamente (no diretório atual e em todos os subdiretórios):

shopt -s globstar
for f in ./**/*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

Se você tem os flacs nos arquivos ogg ou algo assim, obviamente mude ./*.flacpara ./*.ogg.

Eu acho que isso deve funcionar com o avconv / ffmpeg dos repositórios (já que o ALAC é lançado sob a licença Apache e pode ser distribuído legalmente), embora eu tenha a versão do medibuntu instalada.

Se você quiser se livrar dos arquivos originais, pode rminserir o loop. Esta versão usa o -nsinalizador para avconv, portanto, não substituirá nenhum arquivo ALAC já existente, e usar em &&vez de; significa que se o avconv parar com um erro, o arquivo FLAC original não será excluído:

for f in ./*.flac; do avconv -n -i "$f" -c:a alac "${f%.*}.m4a" && rm "$f"; done

Observe que a exclusão de arquivos com rm é irreversível (fora da recuperação forense de dados), portanto, tenha cuidado ao usá-lo.


Você sabe como substituir os arquivos flac por alac, em vez de fazer uma cópia alac do arquivo flac?
— user138784

@ user13 não, avconv / ffmpeg não pode fazer isso, não pode sobrescrever os arquivos que usa como entrada. Você pode usar rmpara remover os arquivos originais, se desejar.
— evilsoup

Eu realmente não sou um guru de linha de comando (sou bastante novo no GNU / Linux), então até agora eu os removia manualmente. (nautilus, organize os arquivos por tipo e, em seguida, posso selecionar todos os arquivos .flac nesse diretório e removê-los). Vou dar uma olhada em como essa coisa "rm" funciona. :)
— user138784

@ user138 Eu editei a resposta para mostrar uma implementação rm- embora tome nota do aviso, rmé praticamente irreversível, ele exclui completamente os arquivos em vez de movê-los para a lixeira. Outra alternativa seria usar o globbing após a conclusão do loop (para que você possa verificar se não houve problemas ... se o comando falhar por qualquer motivo, você não quer se livrar dos originais): rm -- *.flacremoveria todos os FLAC no diretório de trabalho.
— evilsoup

Obrigado pelo conselho! Normalmente, mantenho os arquivos flac originais em outro diretório, para que não haja risco de perdê-los.
— user138784
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.