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.

Como reduzir o tamanho do arquivo de audio mp3

O caso aqui é o de reaproveitar todo e qualquer aparelho reprodutor de mp3, ou cartões de memória velhos e, sobretudo, com espaço para armazenamento muito limitado. Eu, mesmo, tinha um pendrive “guerreiro” de 256 Mb, que devia estar próximo dos 7 anos de uso — simplesmente não lembro de quando o comprei. Mas funciona bem em uma caixa de som com entrada USB.
Recentemente, converti uma coleção inteira de CDs para mp3, como cópia de segurança. Agora, para ouvir no dia a dia, não preciso de arquivos de 320 kbps – 128 kbps, ou menos, podem ser o suficiente.

MP3 Logo
MP3 Logo

Se você tem um iPod ou celular antigo, com espaço insuficiente para armazenar músicas, fazer um downsampling nelas pode ser uma solução — é possível triplicar a quantidade de músicas que cabem no dispositivo.
OBS.:A segunda parte deste artigo ensina a fazer esta tarefa com o gstreamer-tools.

Ferramentas necessárias para reduzir o tamanho do arquivo mp3

Os aplicativos necessários para realizar esta tarefa são o python-mutagen e o lame. Ambos podem ser baixados e usados livremente.
No Ubuntu, você pode instalar os dois primeiros via terminal (Ctrl + Alt + T), assim:

sudo apt-get install lame python-mutagen

Como converter os arquivos mp3

Você deve ter centenas de arquivos para converter, não apenas um, eu sei… — mas eu quero mostrar como tudo funciona. Sinta-se livre para pular esta parte, se quiser, apressadinho(a). 😉
Dentro do terminal aberto, digite o seguinte comando para resamplear a sua música (adapte o comando à sua situação, substituindo os nomes dos arquivos):

lame -V5 --vbr-new --resample 44.1 arquivo_original.mp3 arquivo_resampleado.mp3

Aguarde alguns intantes, enquanto os arquivos são processados e, depois, compare os tamanhos.

reduzir o tamanho do mp3
Clique para ampliar a tela

Depois de concluído o trabalho, verifique os tamanhos dos arquivos.
Parece que vai dar pra reviver o antigo cartão de memória, ou não?
Como resamplear arquivos mp3
Clique para ampliar

Problemas que você pode ter com a conversão

Temos dois problemas com este método, por mais eficiente que ele seja:

  • O LAME não copia as tags id3 pro arquivo de origem — em outras palavras, na hora em que estiver tocando, o display do seu aparelho não vai mostrar as informações da música (nome, cantor, álbum etc) – o que pode ser um problema menor para quem vai tocá-las em um aparelho sem visor;
  • Como eu imagino que você tenha centenas de músicas para converter, todo este trabalho braçal não tem sentido.

Como converter muitos arquivos mp3

Para fazer o resampling de uma quantidade brutal de arquivos, o ideal é usar um script.
O Linerd do TuxTweaks, ensina a montar um este script que automatiza a nossa tarefa.
Em verdade, vos digo que serão 2 scripts. O primeiro lê todos os arquivos do diretório a partir do qual está sendo executado e os repassa pro segundo script, que faz o resampling e copia as tags id3. Todos os arquivos do diretório atual serão copiados para um segundo, chamado resample, criado pelo script.
A recomendação, aqui, é que você crie uma pasta (diretório) só para scripts e programas seus:

mkdir ~/bin
cd ~/bin

Copie o texto do script abaixo e cole-o dentro do seu editor de textos preferido. Salve-o como mp3shrink dentro do diretório criado para isto ~/bin

#!/bin/bash
#
# mp3shrink - Um script para resamplear todos os arquivos mp3
# em um diretorio. Este script chama o cptag que precisa
# estar no diretorio do mp3shrink. O cptag depende do lame
# e do mid3v2 (mid3v2 se encontra no pacote do python-mutagen
# É aconselhavel que os scripts fiquem no diretório  
# ~/bin.
######################################################

# Lita os mp3 no diretorio atual
ls *.mp3 > mp3_list
ls *.MP3 >> mp3_list

# Analisa os arquivos mp3 e substitui os espaços em branco por barras de escape.
sed -i 's: :\\ :g' mp3_list

# Verifica a existencia do diretorio resample. Cria um se nao existir
if
   test -e ./resample
then
   echo "diretorio/arquivo resample ja existe. deseja remover? (S/n)"
   read reply
   if
     [ "$reply" != "n" ]
   then
     rm -r resample
     mkdir resample
   else
     exit
   fi
else
   mkdir resample
fi

# Resampleia cada arquivo mp3 e grava as tags atraves do script cptag
cat mp3_list |while read song
do
   echo "$song"
   ~/bin/cptag "$song"
done

# fazendo a limpeza .... 
if
   test -e mp3_list
then
   rm mp3_list
fi
if
   test -e tag2.txt
then
   rm tag2.txt
fi
exit

Feito isto, crie o arquivo cptag, também dentro do diretório ~/bin. Segue o código:

#!/bin/bash
#
#cptag - Um script que resampleia arquivos mp3 com o LAME
#        e copia as tags id3v2 do original pro novo.
#
#####################

# Le as tags id3 e grava no arquivo
mid3v2 -l "$1" > tag2.txt

# Resampleia o arquivo de audio

lame -V5 --vbr-new --resample 44.1 "$1" "resample/$1"

# ajusta o valor da variavel 'title'
if
   grep TIT2= tag2.txt > /dev/null  #testa se a tag title existe
then
   title=`grep TIT2= tag2.txt | sed "s:TIT2=::"`
   echo $title
else
   echo "A tag title nao existe."
fi

# Ajusta a variavel 'album'
if
   grep TALB= tag2.txt > /dev/null  #testa se a tag album existe
then
   album=`grep TALB= tag2.txt | sed "s:TALB=::"`
   echo $album
else
   echo "A tag album nao existe."
fi

# Ajusta a variavel 'artista'
if
   grep TPE1= tag2.txt > /dev/null  #Testa se a tag artista existe
then
   artist=`grep TPE1= tag2.txt | sed "s:TPE1=::"`
   echo $artist
else
   echo "A tag artista nao existe."
fi

# Ajusta o valor da variavel 'track'
if
   grep TRCK= tag2.txt > /dev/null  # Testa se a tag track existe
then
   track=`grep TRCK= tag2.txt | sed "s:TRCK=::"`
   echo $track
else
   echo "A tag track nao existe."
fi

# Ajusta a variavel 'genre'
if
   grep TCON= tag2.txt > /dev/null  # Testa se a taf genre exsite
then
   genre=`grep TCON= tag2.txt | sed "s:TCON=::"`
   echo $genre
else
   echo "A tag genre nao existe."
fi

# Grava as tags no arquivo
mid3v2 -t "$title" -A "$album" -a "$artist" -T "$track" -g "$genre" "resample/$1"

exit

Agora, você precisa tornar estes dois scripts executáveis:

cd ~/bin
chmod u+x mp3shrink cptag

Feito!
Agora vá para o diretório em que se encontram todos os mp3 que você deseja resamplear e execute:

mp3shrink

O script vai guardar os novos arquivos em um subdiretório chamado resample. Dê uma olhada!
Divirta-se!

Assista e baixe fácil videos do Youtube com o Minitube.

O Minitube existe aí em versões para Windows, Mac e Ubuntu.
Se você é um feliz possuidor de uma máquina Ubuntu, siga em frente. Vamos ver, aqui, duas formas de instalar este software. Note que a instalação de aplicativos exige você tenha acesso administrativo à máquina.

Via terminal

  • Abra um terminal com as teclas Ctrl + Alt +T
  • Instale o Minitube com o apt-get:
    sudo apt-get install libqtgui4 libqt4-xml libqt4-network libqt4-dbus phonon-backend-vlc

A partir de agora, você pode rodar o Minitube do terminal ou usar o dash.
Fácil, né? 😉
PS:A princípio, bastaria executar sudo apt-get install minitube. Mas, como eu sabia que você provavelmente iria copiar e colar o comando todo, decidi transcrever o comando na sua forma mais completa e, portanto, menos susceptível à erros… 😉

Pela Central de Programas do Ubuntu

Meu modo preferido de instalar meus aplicativos é pelo terminal. Mas, cada um tem o seu jeito… Se você curte uma interface gráfica para fazer as coisas acontecerem, quem sou eu pra te contrariar?

  • Abra a Central de Programas do Ubuntu
    Captura de tela de 2013-02-04 16:08:36
  • Faça a busca por ‘minitube’, no canto superior direito do aplicativo
  • Quando ele aparecer nos resultados da busca, marque-o para instalaçãoCaptura de tela de 2013-02-04 16:13:48

Feita a instalação, feche a Central e rode o aplicativo a partir da sua barra de aplicativos à esquerda, na tela.
Se tudo der certo, o Minitube será adicionado automaticamente à barra de aplicativos à esquerda da tela.

Como ripar seus CDs de áudio no Linux

O RipIT é um aplicativo para ripar CDs de áudio. Ele permite fazer cópias de segurança, preservando a qualidade original do som.
A ferramenta é simples e flexível o suficiente para gerar vários padrões de arquivos simultaneamente, prontos para serem levados ao smartphone, para o cartão SD, para o pendrive do carro etc.
É uma ferramenta em modo texto, de linha de comando, para ser executada num terminal.
É, também, muito fácil de ser usada.
Basicamente, tudo pode se resumir a digitar o comando e dar enter para todas as perguntas (usualmente duas) que ele fizer e ir fazer outra coisa enquanto ele trabalha.
Mas eu não viria até aqui só para escrever isto, não é?
A instalação é fácil, pois o aplicativo está disponível nos repositórios oficiais de todas as grandes distribuições GNU/Linux.
Se você usa o Ubuntu, pode instalar clicando no botão abaixo:

Instalar Ripit

Tal como muitas ferramentas que podem ser executadas na linha de comando, o ripit é extremamente flexível e oferece um grande poder ao usuário na sua configuração.
O seu arquivo de configuração fica em ~/.ripit/config e é auto explicativo e simples (pra quem sabe inglês). Se você domina o idioma, divirta-se e tenha juízo!
Se você ainda está aqui é por que deseja que eu facilite um pouco mais as coisas pra você. Vamos a isso!
A lista de comandos que costumo usar é a seguinte:

ripit --coder lame --bitrate 320 --lowercase --underscore --verbose 5 --comment "meu backup pessoal" --eject --save

Estas opções têm o seguinte significado:

  • --coder lame: pede para usar um determinado codificador. Este aí, gera os arquivos mp3. Se você preferir um formato livre/aberto, pode usar oggenc no lugar de lame. Eu costumo usar mais o oggenc.
  • --bitrate 320: define a “qualidade” dos arquivos. O valor 320 é exagerado para a maioria dos casos e vai contribuir para os arquivos de saída se tornarem muito grandes. Contudo, como não temos a intenção de fazer upload deles, mas guardá-los, pode ser interessante usar este valor. Caso queira compartilhar os seus arquivos, use um valor mais baixo. Um bitrate de 128 kbps é ótimo.
  • --lowercase e --underscore: fazem com que os_asrquivos_de_saída_tenham_os_seus_nomes_escritos_em_minúsculas e com_palavras_separadas_por_sublinhas.
  • -verbose 5: liga o modo “tagarela” do ripit no máximo. Ele vai informá-lo de tudo que estiver fazendo. O nível padrão é 3. Se você não quer saber de nada ou não entende inglês, pode desligá-lo, usando o nível 0.
  • --comment “meu comentario”: entre aspas, sinta-se à vontade pra dizer alguma coisa sobre os arquivos.
  • --eject: ao final de todo o processo, ejeta o seu CD.
  • --save: grava todas estas configurações no arquivo ~/.ripit/config. Assim, na próxima vez em que você executar o ripit, só precisará citar o seu nome. Ele vai buscar o restante das configurações no arquivo.

Desta forma, você pode brincar um pouco com as opções do ripit e gravar no arquivo de configuração as suas opções preferidas. Depois de ter gravado as suas preferências no arquivo de configurações, você só precisará usar o comando desacompanhado de qualquer parâmetro.

Outras opções interessantes de uso do ripit

Os aparelhos móveis atuais já têm uma quantidade de memória suficiente para não nos obrigar a ouvir músicas gravadas com baixa qualidade.
O padrão de compressão MP3 surgiu em um momento em que os arquivos de áudio tinham que ser minúsculos — para que se pudesse ter um pouco mais de uma centena de músicas dentro de um CD de 650 MB.
Esta limitação não existe mais.
A maioria dos sons automotivos pode reproduzir CD-RW de 700 MB e “pendrives” com capacidades superiores a 64 GB.
Além disto, é possível conectar o seu reprodutor pessoal de mídias ou smartphone a quase todos os tipos de sistemas de som via entrada auxiliar ou bluetooth.
Estas possibilidades reduzem a obrigação de comprimir excessivamente os arquivos de música — o que implica diretamente na perda da qualidade sonora.
Se você tem bastante espaço disponível, então não precisa, de forma alguma, abrir mão da qualidade do som.
Você pode, até mesmo usar arquivos .FLAC — fiéis à qualidade original do áudio e podem ser reproduzidos em qualquer smartphone Android.
Veja a linha de comando abaixo:

ripit --coder 0,1,2 --quality 0,10,0 --bitrate 320 --protocol 5 --verbose 4 --disable-paranoia 2 --eject

Lista de músicas do álbum as 4 estações de Legiao Urbana
Recomendo usar o FLAC. Se você precisa de argumentos para isto, leia este artigo.
Seguem os motivos de ter escolhido estas opções:

  • --coder 0,1,2 — o aplicativo permite que eu especifique mais de uma codificação. Isto é ótimo!
    Assim, eu não preciso repetir o processo para obter os arquivos em .FLAC ou qualquer outro formato.
    Com estas opções, separadas por vírgulas, o ripit irá criar e gravar os arquivos em MP3 (0), OGG (1) e FLAC (3). O Google Music Player, padrão no Android, lê todos estes 3 formatos.
    Com um processador atual, o tempo de execução da tarefa não irá aumentar mais do que alguns minutos, ou seja, 20 – 30% a mais.
  • --quality — novamente, separei as opções de cada formato de arquivo por vírgulas. Aqui, ficou definida a máxima qualidade (e mínima compressão), respectivamente, para os formatos MP3, OGG e FLAC.
    Neste caso, os arquivos FLAC irão para o meu backup pessoal, em Blu-Ray, em função da qualidade superior — a partir deles, poderei criar arquivos em MP3 ou OGG a qualquer momento.
  • --protocol 5 — A variável protocol level ativa o suporte às fontes UTF-8. O valor padrão desta variável é 6.
    Se você estiver tendo problemas com a acentuação nos nomes das músicas ripadas de um álbum nacional, use o valor 5 (como no meu exemplo).
  • --disable-paranoia 2 — este parâmetro desabilita o recurso paranoia em caso de erro na leitura de uma trilha. O programa, então, irá repetir a leitura sem o paranoia, retomando-o na próxima trilha.