Convertendo wma para mp3

Publicado por Thiago Alves em 10/03/2005

[ Hits: 39.948 ]

Blog: http://www.seeufosseopresidente.com.br

 


Convertendo wma para mp3



Vamos criar um pequeno script bem simples pra fazer a conversão de wma para mp3, caso não tenha o plugin no XMMS e também não queira instalar o tal plugin, use esse script.

NOTA: Para isso é preciso ter o mplayer e o lame instalados.

Crie um arquivo com o nome que quiser, aqui vou chamar de wma2mp3, abra esse arquivo com qualquer editor de texto e insira nele o código a seguir:

#!/bin/bash

current_directory=$( pwd )
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -waveheader $i && lame -m s audiodump.wav -o $i; done
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
rm audiodump.wav

Pronto, feito isso, dê permissão de execução ao arquivo, nesse caso chamado wma2mp3:

# chmod +x wma2mp3
ou
# chmod 755 wma2mp3

Agora fica simples, pode-se fazer de duas maneiras:

1 - copiar o wma2mp3 pra algum diretório que esteja do path (/bin /usr/bin) e quando for converter, entre no diretório onde estão os arquivos wma e execute o comando:

$ wma2mp3

2 - sempre que for converter, copiar o arquivo wma2mp3 para o diretório dos arquivos wma e executar:

$ ./wma2mp3

Boa sorte, espero ter ajudado... Lembre-se, Google é seu amigo, alguma dúvida? Poste aí, mas também não se acomode, pode-se encontrar muitas coisas em uma simples busca no Google.

Script retirado de:
Outras dicas deste autor

Instalando o mldonkey

Qmail - monte o seu próprio servidor de e-mail

Instalando o mldonkey mesmo com os servidores oficiais offline

Compilando Apache2 + PHP5

Instalando e iniciando o Blackbox

Leitura recomendada

Glider: Símbolo da ética Hacker!

Criando vídeo de teste com color bar e tom de 1 kHz usando o FFMPEG

Básico sobre XMAME para emular jogos de Neogeo no Linux

Brasilianas.org - Software Livre

Rocks`n Diamonds no Zenwalk (e em outras distros)

  

Comentários
[1] Comentário enviado por drpollo em 22/03/2005 - 21:26h

Hi, this script has solved a small headache I had since I couldn't install the xmms plugin properly, besides, I don't like to have .wma files in my hard drive.

However I rewrote the original wma2mp3 script in a more Unix way, taking one parameter as input and using sed to produce the output filename. So for converting all .wma's in the current directory you have to write:

for i in $( ls | grep -i '\.wma' ); do ./wma2mp3 $i; done

Also, I changed the lame invocation so it codes at 192 bps and preserved the original file, it's better to leave to the user the decision of deleting the .wma's

Anyway, thank you for the original script
Alberto

----------------- wma2mp3 -------(new version)----------------------
#!/bin/bash

mplayer -vo null -vc dummy -af resample=44100 -ao pcm -waveheader $1 && lame -b 192 -m s audiodump.wav -o $( echo $1 | sed "s/wma/mp3/" )
rm audiodump.wav


[2] Comentário enviado por nfermat em 29/05/2005 - 00:14h

Bem, um bom script, veloz, no entanto para o mplayer mais novo precisou de uma simples altareção, ficando assim:

#!/bin/bash
current_directory=$( pwd )
#remove spaces
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done
#convert file names
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
rm audiodump.wav


[3] Comentário enviado por andre.vmatos em 29/06/2006 - 22:00h

Kra, esse troço devia se encaixar na seção de shell scripts, nao de Dica

[4] Comentário enviado por vivaolinuxvm em 15/09/2006 - 10:29h

Parabéns, muito bom, o do 'nfernat' ficou mais completinho com comentarios e talz, só esqueceu de colocar a opção -b 192 no LAME pra qualidade ficar melhorzinha.
Abraços. ;)

[5] Comentário enviado por marlos em 15/04/2007 - 22:39h

so falto um detalhe
-waveheader is deprecated. Use -ao pcm:waveheader instead.

----------------- wma2mp3 -------(1.1 version)----------------------
#!/bin/bash

mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader $1 && lame -b 192 -m s audiodump.wav -o $( echo $1 | sed "s/wma/mp3/" )

rm audiodump.wav

[6] Comentário enviado por mcdgo em 26/07/2007 - 20:46h

bladeenc file.wav file.mp3

:D

[7] Comentário enviado por nickmarinho em 11/12/2007 - 11:59h

Nossa, muito mais fácil é usar o ffmpeg...assim ó, vejam que docinho !!!

"ffmpeg -i input.wav output.mp3"

Mole não ?

Abraços

www.lucianomarinho.com.br

www.racaboxer.com.br

[8] Comentário enviado por colchaodemola em 10/03/2008 - 22:17h

rapaz , eu fiz um script a algum tempo atras pra converter wma2mp3 , a principal diferenca eh que ele nao precisa criar o arquivo wav, entao voce nao precisa de muito espaco dependendo do tamanho do wma. Eu tinha um show completo em wma, qse 1.3Gb, descompactar tava fora de cogitacao :)

#!/bin/bash
FIFO=/tmp/fifo
mkfifo $FIFO 2>/dev/null
mplayer -ao pcm:file=$FIFO -vo null -vc null "$1" 1>/dev/null 2>/dev/null &
lame $FIFO "`basename "$1" .wma`.mp3"
rm -f $FIFO 2>/dev/null

[9] Comentário enviado por removido em 27/06/2008 - 19:22h

show completo em wma ??????????????

não seria wmv?

wma = Windows Media AUDIO
wmv = Windows Media VIDEO

show geralmente são em WMV ou MPG ou MPEG

[10] Comentário enviado por nickmarinho em 27/06/2008 - 21:08h

Claro que é show completo, kkk.
Nunca viu show completo em apenas áudio ?

Abraços

www.lucianomarinho.com.br

www.racaboxer.com.br

[11] Comentário enviado por danizach em 27/04/2010 - 12:06h

assim é mais facil

(só serve pra bash)

for i in *.wma; do ffmpeg -y -i "$i" ./OUTPUT/"`basename $i .wma`.mp3";done




[12] Comentário enviado por Odilair em 29/03/2011 - 10:26h

Senhores, verifiquei no script que o mesmo apaga todos os arquivos .wma sem alternativa. Verifiquei também que o mesmo altera o nome do arquivo eliminando os espaços. Abaixo a modificação conservando os originais e mantendo o nome com espaços também:
Espero ter ajudado.
Abraço.

******************

#!/bin/bash

for i in *.wma; do cp -p "$i" "`basename "$i" .wma`.mp3"; done
for i in *.mp3 ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader "$i" && lame -b 128 -m s audiodump.wav -o "$i"; done
rm audiodump.wav


[13] Comentário enviado por cgt_giba em 22/12/2011 - 08:35h

pessoal e se eu quiser que esse script faça a conversão de dos arquivos que estão dentro de subpastas, tem como???

[14] Comentário enviado por nickmarinho em 22/12/2011 - 15:20h

Tem sim.
É só você criar uma nova função pra verificar se tem diretório dentro do diretório.

E no final do loop, você faz a chamada pra executar essa função, daí vira recursivo, entendeu ?
É lógica pura, hehehe

[15] Comentário enviado por cgt_giba em 22/12/2011 - 16:41h

a lógica até que entendi, mas não sei como montar isso no script, sou meio " nó cego" nisso...

[16] Comentário enviado por llbranco em 11/07/2012 - 11:40h

não sei quase nada de sh e seria muito bom para quem não sabe ou até mesmo para quem sabe q seja postada uma solução para toranar o script recursivo.... alguem se habilita? ae, muito bom ( e eu num to nem ae q se apaguem os "wma"s detesto esse formato de arquivo!!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts