Com o GNU Parallel, você nem precisa do script:
find ~/Music/ -type f -name '*.mp4' | parallel ffmpeg -i {} -ac 2 -f wav - \| lame -V 2 - {.}.mp3
A mesma coisa pode ser feita sem usar o lame, supondo que sua versão do ffmpeg seja compilada com o libmp3lame ativado (a maioria das versões são):
find ~/Music/ -type f -name '*.mp4' | parallel ffmpeg -i {} -c:a libmp3lame -q:a 2 {.}.mp3
Você também pode usar -iname
em vez de -name
no comando find, para obter correspondências insensíveis a maiúsculas e minúsculas (para que ele capte todas as * .mp4 e * .MP4 e todas as variações de maiúsculas e minúsculas). Além disso, -ac 2
não é estritamente necessário na segunda versão; O MP3 só pode suportar um máximo de dois canais, então o ffmpeg irá converter automaticamente o áudio para dois canais se necessário, o que evitará que você adicione um canal extra inútil a qualquer áudio mono que você possa ter.
Veja esta página wiki do ffmpeg para obter algumas informações básicas sobre a codificação de MP3s e este guia de hidrogeração para obter informações mais detalhadas.
Se você tem outras máquinas que você pode usar ssh (por exemplo, talvez seu laptop esteja disponível durante as noites), o GNU Parallel também pode usar essas CPUs. Veja os exemplos de --trc (para transferir os arquivos) e --retries (para lidar com o laptop estando ausente durante o dia). Consulte o link
Assista aos vídeos de introdução para saber mais: link