MP3 Logo

Use o gstreamer para fazer resampling de arquivos mp3 no Ubuntu

É possível reduzir ainda mais os tamanhos dos arquivos mp3, com pouca perda da qualidade. A utilidade deste procedimento é fazer com que uma quantidade maior deles caiba em dispositivos reprodutores antigos, com capacidade de armazenamento muito limitada.
Se você não se importa em ouvir toda a sua coleção de músicas em um dispositivo de som, com qualidade de rádio, esta é uma ótima ideia.

iPods mp3 player
Coleção de iPods

No primeiro post sobre este tema mostramos como fazer este trabalho através do LAME.
É claro que a redução tem um custo — a consequente redução da qualidade do áudio do arquivo. A gente aposta na possibilidade de esta queda na qualidade ser imperceptível para a maioria das pessoas e no aproveitamento mais eficiente do espaço na mídia de armazenamento. Houve caso de triplicar a quantidade de arquivos dentro de um pendrive antigo.
Atualmente, temos outras ferramentas que também podem fazer o trabalho e é possível criar um script de automação da tarefa bem menor e mais enxuto do que o do artigo anterior.
Vamos ver aqui como isto é possível.

Instalação das ferramentas de trabalho

Aqui vamos usar o GStreamer para fazer a conversão e resampleamento (resampling) dos arquivos mp3. A principal vantagem dele, em relação ao LAME, é que ele retém as informações id3 dos arquivos. Assim, podemos fazer um único script e menor.
Abra um terminal (Ctrl + Alt + T, no Ubuntu) e digite o comando que segue, para instalar gstreamer-tools:

sudo apt-get install gstreamer-tools

Aguarde alguns minutos enquanto o pacote é instalado e prossiga.

Como criar um script de conversão de arquivos de áudio mp3

Sugiro criar um diretório para scripts e programas no seu /home:

mkdir ~/bin
cd ~/bin

Agora abra o seu editor de textos preferido, copie e cole o script abaixo dentro dele:

#!/bin/bash
#
# gshrink - Um script para resamplear todos os arquivos mp3 do
# diretorio. Este script depende do pacote gstremar-tools
# Os créditos do script original:
# Elder-Geek --> http://elder-geek.blogspot.com.br
######################################################
# Lita os arquivos mp3 no diretorio atual
ls *.mp3 > mp3_list
ls *.MP3 >> mp3_list
# Analisa a lista de arquivos mp3 e substitui os espaços por caracteres de escape
sed -i 's: :\\ :g' mp3_list
# Verifica se o subdiretorio resample já existe. Se não, cria.
if
  test -e ./resample
then
  echo "diretorio/arquivo resample ja existe - apagar? (S/n)"
  read reply
  if
    [ "$reply" != "n" ]
  then
    rm -r resample
    mkdir resample
  else
    exit
  fi
else
  mkdir resample
fi
# Resampleia cada mp3 e grava as tags
# CBR bitrate bitrate=128
# VBR quality quality=9
  cat mp3_list |while read song
do
  echo "$song"
  gst-launch filesrc location= \"$song\" ! decodebin2 ! audioconvert ! lamemp3enc target=bitrate bitrate=128 ! id3v2mux ! filesink location=\"resample/$song\"
done
#clean up
if
  test -e mp3_list
then
  rm mp3_list
fi
if
  test -e tag2.txt
then
  rm tag2.txt
fi
exit

Uma última dica

Para quem fez backup de todos os seus CD’s e guardou cada coletânea e álbum em pastas diferentes, recomendo executar o script dentro de cada pasta de arquivos mp3 – o que vai criar um subdiretório adicional resample com os mesmos arquivos da pasta pai, só que resampleados e reduzidos, prontos para ir pra qualquer lugar.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *