Pular para o conteúdo

Convertendo wma para mp3

Dica publicada em Linux / Miscelânea
Thiago Alves cvs
Hits: 40.715 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Compilando Apache2 + PHP5

Atualizando para GIMP 2.0 via slackpkg

Instalando o mldonkey mesmo com os servidores oficiais offline

Comunidade de Software Livre de Goiás

Ativando SSL no Apache 2

Multimídia no CentOS 7: VLC, Flash Plugin, Codecs, SMplayer, Java, Handbrake

Rodar cygwin pelo wine no Ubuntu

Ouvindo WMA no XMMS (xmms-wma)

Deixando seu GEdit com a cara do TextMate

Criando e instalando DEB do XAMPP

#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
#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
#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

Entre na sua conta para comentar.