Encontre e converta todos os arquivos do ALAC em mp3 / opus / aac

0

Eu estou procurando uma maneira de converter todos os arquivos alac em um diretório recursivamente para outro formato.

Problema: alac e aac usam o sufixo m4a, então find -name "*.m4a" não funciona.

    
por kvbx 04.03.2015 / 13:35

1 resposta

1

Você precisa de uma ferramenta que possa detectar o codec nos arquivos m4a. Uma dessas ferramentas é o avprobe, que está disponível em linuxes baseados em Debian no pacote libav-tools (eu uso o Ubuntu 14.04).

Então você pode fazer assim (se não houver novas linhas nos nomes dos arquivos ...):

find . -name \*.m4a | while read file; do avprobe "$file" 2>&1 |grep -q 'Audio: alac' && echo "$file"; done

obviamente substituindo echo "$file" pelo comando convert.

Se não for possível instalar essa ferramenta, você provavelmente poderá estimar com grep -q Halac "$file" && grep -q '$alac' "$file" . Os poucos arquivos sem perda de maçã que eu testei contêm essas duas cadeias de caracteres, mas pode corresponder arquivos que não são realmente codec sem perda de maçã com uma pequena probabilidade, e não tenho certeza se arquivos sem perda de maçã têm garantia de conter essas cadeias. Se tudo bem, o acima se torna

find . -name \*.m4a | while read file; do grep -q Halac "$file" && grep -q '$alac' "$file" && echo "$file"; done
    
por 04.03.2015 / 14:31