Autor Tópico: Ajuda num script para conversão de áudio  (Lida 3093 vezes)

Offline velox256

  • Usuário Ubuntu
  • *
  • Mensagens: 1.915
  • Debian é Debian... :)
    • Ver perfil
    • Linux Inside
Ajuda num script para conversão de áudio
« Online: 11 de Agosto de 2008, 10:42 »
Moçada, alguém que saca do negócio poderia dar uma mão pra fazer um script pra encaixar um comando de conversão de áudio? O comando é:

Citar
ffmpeg -i arquivo.mp3 -acodec wmav2 arquivo.wma

Estava querendo algo que convertesse uma pasta inteira, ou seja, selecionava a pasta ou os arquivos/botão direito/converter para wma ou coisa do gênero. O nome do arquivo final (wma) poderia ser o mesmo do original (mp3), alguém pode dar um exemplo aí pra eu poder adaptá-lo?

A conversão de mp3 pra wma é pra caber mais arquivos em players de mp3, hehehehe... :)
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

boi

  • Visitante
Re: Ajuda num script para conversão de áudio
« Resposta #1 Online: 12 de Agosto de 2008, 21:08 »
Vê se funciona:

Código: [Selecionar]
for i in *.mp3
do o=`basename "$i" .mp3`
ffmpeg -i "$i" -acodec wmav2 "$o".wma
done

boi

  • Visitante
Re: Ajuda num script para conversão de áudio
« Resposta #2 Online: 12 de Agosto de 2008, 21:27 »
Testei agora, e o pior é que funcionou mesmo. Se quiser uma interface gráfica, dá para fazer com o zenity.
Só que eu não recomendaria usar wma. Ao contrário do que prega a MS, o som do wma com 64kbps não fica com a mesma qualidade do mp3 de 128kbps. Em testes que fiz com o wma usando o próprio encoder do Windows algumas músicas ficaram distorcidas mesmo com 192kbps, que é o máximo.

Offline velox256

  • Usuário Ubuntu
  • *
  • Mensagens: 1.915
  • Debian é Debian... :)
    • Ver perfil
    • Linux Inside
Re: Ajuda num script para conversão de áudio
« Resposta #3 Online: 12 de Agosto de 2008, 21:53 »
Funcionou perfeitamente, nem precisa selecionar os arquivos em uma pasta, basta selecionar um só, mandar converter (usando o Nautilus Scripts) e ele mesmo já manda bala em tudo. Eu só queria ser um pouquinho mais chato, não dá pra fazer com que o terminal mostre o que está ocorrendo com o arquivo (ou arquivos) que está sendo convertido? Só dá pra saber qdo a conversão acaba qdo o meu screenlet de uso da CPU volta a mostrar o 1%-5% de uso normal da minha máquina, hehehe...

Qto ao lance de conversão ser boa ou ruim, não noto muita diferença (vai ver estou ficando surdo), é que eu tenho vários arquivos de 320kbps enormes e gostaria de reduzi-los para caber mais coisas no mp3. Sei que posso fazer isso baixando de 320 para 128kbps em mp3, mas o wma compacta mais ainda e não noto muita perda; ou minha máquina é muito boa ou estou ficando surdo mesmo, hehehe, mesmo pq uso os arquivos em players de mp3 com aqueles fones de arco 'semi-auriculares'. Conheço vários testes de desempenho de arquivos mp3 e wma e tal, mas como sou duro e não tenho grana pra comprar um IPod, vou me virando no meu China-Pod, que também divide o espaço com vídeos de filmes inteiros.
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

boi

  • Visitante
Re: Ajuda num script para conversão de áudio
« Resposta #4 Online: 12 de Agosto de 2008, 23:56 »
Vê se tá bom assim:

Código: [Selecionar]
#!/bin/bash

for i in *.mp3
do o=`basename "$i" .mp3`
ffmpeg -y -i "$i" -acodec wmav2 "$o".wma 2>&1 | zenity --progress --pulsate --title="Convertendo" --text="$o" --auto-close
done

Offline velox256

  • Usuário Ubuntu
  • *
  • Mensagens: 1.915
  • Debian é Debian... :)
    • Ver perfil
    • Linux Inside
Re: Ajuda num script para conversão de áudio
« Resposta #5 Online: 13 de Agosto de 2008, 07:13 »
Êita nós que o bagulho ficou bom pra caramba, vou começar a dar umas fuçadas nesse negócio de script, já que o Linux não dá defeito, tem que procurar outras coisas pra fazer, hehehehe...

Valeu à todos aí.


Vê se tá bom assim:

Código: [Selecionar]
#!/bin/bash

for i in *.mp3
do o=`basename "$i" .mp3`
ffmpeg -y -i "$i" -acodec wmav2 "$o".wma 2>&1 | zenity --progress --pulsate --title="Convertendo" --text="$o" --auto-close
done
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

alarcon

  • Visitante
Re: Ajuda num script para conversão de áudio
« Resposta #6 Online: 14 de Agosto de 2008, 16:59 »
Mais alguns exemplos de scripts wma2mp3:

Código: [Selecionar]
#!/bin/bash

current_directory=$( pwd )
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
for i in *.[Ww][Mm][a]; 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
fonte: http://www.vivaolinux.com.br/dica/Convertendo-wma-para-mp3/



Código: [Selecionar]
#!/bin/bash

for i in *wma; do
cp -v "$i" `echo $i | tr ' ' '_'` > log
cat log | cut -d '`' -f 3 | sed -s "s/'//" >> list_arq
done

# converter com o mplayer / codificar com a LAME
for i in `cat list_arq`; do
mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader $i > mp_log && echo 0 > log || echo 1 > log
title=`cat mp_log | grep name: | cut -d ":" -f 2 | cut -d " " -f 2-`
author=`cat mp_log | grep author: | cut -d ":" -f 2 | cut -d " " -f 2-`
track="$(( $track + 1 ))"

if [ -z "$title" ]; then
title="Unknown"
fi
if [ -z "$author" ]; then
author="Unknown"
fi

if [ `cat log` = "0" ]; then
  if [ $track -le "9" ]; then
   lame -m s audiodump.wav --tt "${title}" --ta "${author}" --tn "${track}" -o "0${track} - ${title}.mp3"
   else
   lame -m s audiodump.wav --tt "${title}" --ta "${author}" --tn "${track}" -o "${track} - ${title}.mp3"
   fi
  else
  echo "Erro ao decodificar o arquivo: $i"
  echo "Saida de erro:"
  echo
  cat mp_log
  rm $i log mp_log
  exit 1
  fi

rm $i
rm log mp_log
done

rm audiodump.wav
rm list_arq
exit 0
fonte: http://www.vivaolinux.com.br/script/wma2mp3


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



===EDITADO===

Desculpe-me você deseja é o contrário de mp3 para wma, mas de qualquer forma serve de estudo da estrutura de um script que pega vários arquivos em uma pasta e converte de um tipo de arquivo de som em outro. Quem sabe que com algumas adaptações funcione também no caso contrário mp3 > wma.
« Última modificação: 14 de Agosto de 2008, 17:05 por alarcon »

Offline velox256

  • Usuário Ubuntu
  • *
  • Mensagens: 1.915
  • Debian é Debian... :)
    • Ver perfil
    • Linux Inside
Re: Ajuda num script para conversão de áudio
« Resposta #7 Online: 15 de Agosto de 2008, 11:21 »
Beleza, estava querendo um desses também, de wma para mp3, mas pra isso eu também uso o SoundConverter (e o com 'K' também...). :)
Computador perereca, com disco perereca, monitor perereca e sistema super xuxu. Visitem a minha página em http://sidserra.k6.com.br ou meu blog em http://sidserra.blogspot.com.br.

Offline Ricardones

  • Usuário Ubuntu
  • *
  • Mensagens: 3
    • Ver perfil
Re: Ajuda num script para conversão de áudio
« Resposta #8 Online: 21 de Agosto de 2008, 18:41 »
aham!