Convertendo Arquivos flac para mp3 Mantendo as Tags ID3

Introdução

Estava precisando de um conversor flac para mp3 que mantivesse as tags ID3 do arquivo. Assim, depois da conversão, o nome da música, álbum e artista ainda estariam no arquivo.

Em [1], vemos que o ffmpeg pode ser usado para isso. Primeiro, entre no diretório de músicas:

$ cd /pasta/de/musicas/flac

e execute o seguinte comando (só copiar, colar no terminal e dar ENTER):

  for FILE in *.flac; 
  do
      ffmpeg -i "$FILE" -ab 320k -map_metadata 0 "${FILE%.*}.mp3";
  done

Ok, funciona!! E se quisermos acelerar a conversão executando alguns comandos paralelamente? Isso pode ser facilmente feito usando o xargs[2].

find . -print0 -name '*.flac' |\
   xargs -0 -P 4 -I'{}' -n 1 ffmpeg -i \{\} -ab 320k \
   -map_metadata 0 \{\}.mp3

Melhor ainda se colocarmos tudo isso dentro de um script:

#!/bin/bash
# salve como: flac3mp3
# uso: flac2mp3 <dir flac> <dir mp3>
# Mon Jun 30 13:58:05 BRT 2014

# Número de threads (xargs)
P=4

if [ -z "$1" ] || [ -z "$2" ]
then
   echo '[uso] ./flac2mp3 <diretorio flac> <diretorio mp3>'
   exit
fi

[ ! -d "$1" ] && echo "[-] Impossivel abrir: $1" && exit
[ -d "$2" ] || mkdir "$2"

echo "[+] Espere, convertendo..."

find "$1" -print0 -name '*.flac' | \
    xargs -0 -P $P -I'{}' -n 1 ffmpeg -i \{\} -ab 320k\
    -map_metadata 0 \{\}.mp3 2>/dev/null

for FILE in "$1"/*.mp3
do
    echo "Movendo "$(basename "$FILE" .flac.mp3).mp3
    mv "$FILE" "$2/$(basename "$FILE" .flac.mp3).mp3"
done

A execução é simples:

$ chmod +x flac2mp3
$ ./flac2mp3 /pasta/de/musicas/flac pasta_mp3

Verificando com ps aux, é possível ver que há mais de um arquivo sendo convertido ao mesmo tempo. Por fim, só conferir se os arquivos estão na pasta:

$ ls pasta_mp3
01 - Mark Taylor - Vintage Future.mp3
02 - Martian 044 - Prayer Stick.mp3
03 - Remote - Protecting My Hive.mp3
04 - Suburban Knight - Black Strategy.mp3
05 - UR - Codebreaker.mp3
16 - Underground Resistance - Phiber Optik Commando (MOD Mix)

Referências

[1] Convert flac to mp3 using ffmpeg, retain ID3 tags by Annie Mullin (Acessado em: 30/06/2014)
http://herself.movielady.net/2011/06/21/convert-flac-to-mp3-using-ffmpeg-retain-id3-tags/

Deixe um comentário