Como criar seu próprio conversor de WAV para MP3 PDF Imprimir E-mail
Artigos - Áudio
Escrito por Fernando Mercês   
Dom, 14 de Junho de 2009 21:11

Que tal clicar com o botão direito num arquivo WAV e ver uma opção "Converter para MP3", clicar e funcionar? Calma! Não é o que parece, não vou programar um encoder na unha. Neste artigo vou mostrar como podemos usar um encoder de MP3 existente para criar um conversor rápido de WAV para MP3 que trabalhe desta forma. A idéia é se livrar de programas de terceiros que exigem instalação (e alguns são até bem pesados). Os leitores mais dispostos podem criar diferentes tipos de conversores, inclusive programar uma GUI completa para o encoder que utilizei no artigo.

 

Primeiro vamos entender como um arquivo WAV é convertido para MP3, de forma básica. Para que isso aconteça, precisamos de um codec MP3, esta palavrinha é a redução de compressor-decompressor, ou seja, é o que precisamos para criar e ouvir MP3. Todas as versões atuais do Windows já possuem um decoder MP3, ou seja, somente para reproduzir estes arquivos. Por isso precisaremos agora de um encoder, para criarmos.

 

O encoder MP3 mais famoso (e alguns diriam "o melhor") é o LAME MP3 Encoder. No site do desenvolvedor há um link para o Source Forge onde podemos baixar o código-fonte do LAME e compilar em diversas plataformas como Windows, Linux, BSD, etc. É possível conseguir pacotes já compilados para Windows e pré-compilados para Linux, para economizar tempo, então baixe a versão para Windows que está no nosso repositório.

 

Depois de fazer o download, crie uma pasta chamada "lame" no diretório raiz da unidade C e descompacte o conteúdo do arquivo lame3.98.2.zip nesta pasta. A estrutura deve ficar como abaixo:

 

 

O aplicativo principal, lame.exe (546 KB) é o que vamos utilizar para conversão. Vamos fazer um teste:

 

1 Copie um arquivo WAV qualquer para o diretório C:\lame e renomei-o para teste.wav.

 

2 Abra um prompt de comando (Inicar > Executar > cmd) e digite:

 

cd \lame

lame -b 128 teste.wav teste.mp3

 

Será criado um arquivo teste.mp3 com bitrate de 128 Kbps (configurado pela opção "-b 128"). Para ver todas as opções do LAME digite lame /?.

 

Agora que sabemos que o LAME funciona, vamos automatizar o processo como falei na introdução do artigo. Quando clicamos com o botão direito do mouse num arquivo WAV, o Windows carrega uma lista de comandos possíveis para este tipo de arquivo. Esta lista pode ser editada de duas maneiras:

 

1 Diretamente pelo registro (usando o regedit.exe), na chave

HKEY_CLASSES_ROOT\SoundRec\shell.

 

2 Clicando em "Ferramentas > Opções de pasta > Tipos de Arquivo > WAV > Avançado", do Windows Explorer.

 

Vamos fazer pelo Windows Explorer, depois veja no registro como ficou. ;o)

 

Seguindo o item 2 acima, você chega na janela abaixo. Preencha-a da seguinte forma:

 

 

Está claro que quando clicada, esta opção rodará o arquivo lame.vbs, interpretado pelo cscript.exe (nativo do Windows), na pasta C:\lame. Já vamos criar este arquivo mas primeiro vamos entender o que é este "%1". Isto é uma variável que representa o primeiro argumento passado para um executável (no caso, para o .vbs). O Windows já trata de preencher esta variável com o caminho absoluto (completo) do arquivo no qual você clicou com o botão direito. Confundiu? Entenda assim: quando você clicar com o botão direito e na opção "Converter para MP3" num arquivo chamado musica.wav que esteja em C:\mp3, por exemplo, o comando executado será cscript.exe C:\lame\lame.vbs "C:\mp3\musica.wav".

 

Agora precisamos criar este arquivo lame.vbs dentro do diretório C:\lame, com o seguinte conteúdo:

 

wav = Chr(34) & WScript.Arguments.Item(0) & Chr(34)
mp3 = Replace(wav,".wav",".mp3")
comando = "c:\lame\lame.exe -b 128" & " " & wav & " " & mp3
Set objShell = CreateObject("WScript.Shell")
objShell.Run(comando)
wscript.quit

 

NOTA: Este arquivo também está disponíveis para download no repositório.

 

O script lame.vbs recebe o nome completo do arquivo, armazena-o entre aspas numa variável chamada wav. Depois cria a variável mp3 com o nome do arquivo tendo o ".wav" trocado por ".mp3". Em seguida o LAME é instruído a transformar o WAV em MP3. Usei um bitrate de 128 Kbps mas você pode mudar o bitrate e adicionar outras opções se for o caso.

 

Agora é só escolher um arquivo WAV e clicar com o botão direito:

 

Um arquivo MP3 será criado no mesmo diretório. No exemplo acima, na área de trabalho. ;o)

 

Não esqueça de ver no registro como ficou. Lembre-se que este é um exemplo básico, você pode incrementar as opções do LAME a fim de adaptar a seu gosto, além disso, pode criar também um conversor de MP3 para WAV e colocar essa opção nos arquivos MP3, enfim, as possibilidades são muitas.

 

E o Linux, como fica? Obviamente é possível. Para usuários do Ubuntu, por exemplo, basta fazer o seguinte:

 

1 Instalar o LAME.

 

$ sudo apt-get install lame

 

2 Criar um script chamado "Converter para MP3" em ~/.gnome2/nautilus-scripts com o seguinte conteúdo:

 

#!/bin/bash
wav=`pwd`/`basename $1`
mp3=`pwd`/`basename $wav .wav`.mp3
lame -b 128 $wav $mp3

 

NOTA: O script também está incluso no pacote de scripts do repositório.

 

3 Dar permissão de execução no script.

 

$ chmod +x Converter\ para\ MP3

 

A partir deste o momento o Nautilus já exibirá a opção "Scripts" e dentro dela o script criado. Você pode criar scripts para qualquer necessidade, assim como sub-diretórios de scripts organizados por tipo.

 

Script sendo exibido no menu de contexto de um arquivo

 

Perceba que o Nautilus (entenda como "Windows Explorer" do Gnome/Ubuntu) já suporta scrtips, o que torna o trabalho bem mais simples.

 

Fique à vontade para discutir melhorias neste processo usando nosso fórum!