Esse script foi pego no Fórum do Kurumin, achei melhor trazer para cá pois assim ninguém precisa ficar caçando na Net acha rápido aki !
#!/bin/bash
#
# Script para Converter e Normalizar Arquivos de Audio
#
# Escrito por Éderson L. Honorato <ederhonorato@hotmail.com>
# Baseado no Script de Thobias S. Trevisan <thobias[at]cos.ufrj.br>
#
# Os programas utilizados por este script sâo:
# sox, normalize, mplayer
#
case "`tty`" in
/dev/tty[1-8])
MODE=text
DIALOG=dialog
;;
/dev/pts/*|/dev/ttyp*)
MODE=x
export XDIALOG_HIGH_DIALOG_COMPAT=1
[ -x /usr/bin/gdialog ] && DIALOG=gdialog
[ -x /usr/bin/Xdialog ] && DIALOG=Xdialog
[ $DIALOG = dialog ] && MODE=text
;;
*)
esac
caminho(){
resposta=$($DIALOG --stdout --title "$titulo" --backtitle "Selecione o Arquivo ou Diretório" --fselect "$HOME" 0 0)
}
typefil(){
extfil=`$DIALOG --stdout --title "FORMATO DE COMPRESSÃO" --backtitle "Que formato de audio existe nesta pasta ?" --radiolist "" 20 80 0 \
"OGG" "Arquivos no formato Ogg-Vorbis" off \
"MP3" "Arquivos no formato MPeG Layer 3" off \
"WMA" "Arquivos no formato do Windows Media Audio" off \
"WAV" "Arquivos no formato WAVE" on `
case $extfil
in
OGG ) extencion="[o][Gg][Gg]"
;;
MP3 ) extencion="[Mm][Pp][3]"
;;
WMA ) extencion="[Ww][Mm][a]"
;;
WAV ) extencion="[Ww][a][Vv]"
;;
esac
}
choiceformat(){
escolha=`$DIALOG --stdout --title "$titulo" --backtitle "Escolha o formato em que deseja Converter:" --radiolist "" 20 80 0 \
"OGG" "Formato Open-Source Ogg-Vorbis (recomendado)" off \
"MP3" "Formato MPeG Layer 3" off \
"WAV" "Formato WAVE (audio padrão da Microsoft)" off \
"WMA" "Formato do Windows Media Audio(também da Microsoft)" off \
"Voltar" "Voltar ao Menu Principal" on `
case $escolha
in
OGG ) oggformat
;;
MP3 ) mp3format
;;
WAV ) wavformat
;;
WMA ) wmaformat
;;
Voltar ) ;;
esac
}
oggformat(){
newformat="OGG"
aviso
if [ $tipo = "file" ]; then
num=${#resposta}
caractere=$((num-4))
nova=${resposta:0:caractere}
echo "Tenha Paciência"
echo "Convertendo $resposta para $nova.ogg..."
sox "$resposta" "${nova}.ogg"
verro
else
typefil
for i in `ls $resposta*.$extencion`; do num=${#i}; crct=$((num-4)); auname=${i:0:crct}; sox "$i" "$auname.ogg" ; done
fi
}
mp3format(){
newformat="MP3"
aviso
if [ $tipo = "file" ]; then
num=${#resposta}
caractere=$((num-4))
nova=${resposta:0:caractere}
echo "Tenha Paciência"
echo "Convertendo $resposta para $nova.mp3..."
sox "$resposta" "${nova}.mp3"
verro
else
typefil
for i in `ls $resposta*.$extencion`; do num=${#i}; crct=$((num-4)); auname=${i:0:crct}; sox "$i" "$auname.mp3" ; done
fi
}
wavformat(){
newformat="WAV"
aviso
if [ $tipo = "file" ]; then
num=${#resposta}
caractere=$((num-4))
nova=${resposta:0:caractere}
echo "Tenha Paciência"
echo "Convertendo $resposta para $nova.wav..."
sox "$resposta" "${nova}.wav"
verro
else
typefil
for i in `ls $resposta*.$extencion`; do num=${#i}; crct=$((num-4)); auname=${i:0:crct}; sox "$i" "$auname.wav" ; done
fi
}
wmaformat(){
newformat="WMA"
aviso
if [ $tipo = "file" ]; then
num=${#resposta}
caractere=$((num-4))
nova=${resposta:0:caractere}
echo "Tenha Paciência"
echo "Convertendo $resposta para $nova.wma..."
mplayer -ao pcm -aofile "${nova}.ogg" "$resposta"
verro
else
typefil
for i in `ls $resposta*.$extencion`; do num=${#i}; crct=$((num-4)); auname=${i:0:crct}; mplayer -ao pcm -aofile "$auname.wav" "$i" ; done
fi
}
aviso(){
mensagem="O arquivo antigo não será excluido por motivo de segurança.\nSomente será gerado um novo
arquivo com o novo\n formato e no mesmo nome do anterior.\nCaso deseje apagar o arquivo de audio antigo,
faça-o manualmente"
$DIALOG --title "$titulo" --backtitle "Converter Para $newformat" --msgbox "$mensagem" 0 0
}
verro(){
if [ $? = 1 ]; then
merro="Ocorreu algum erro enquanto fazia a coversão de $resposta \n"
$DIALOG --title "$titulo" --backtitle "Converter Para $newformat" --msgbox "$merro" 0 0
else
mok="Conversão do arquivo $resposta foi concluida com sucesso !"
$DIALOG --title "$titulo" --backtitle "Converter Para $newformat" --msgbox "$mok" 0 0
fi
}
while : ; do # loop amarrado
titulo="Audio Converter 1.5"
subtit="Selecione a opção desejada:"
opcao=`$DIALOG --stdout --title "$titulo" --backtitle "$subtit" --radiolist "" 20 65 0 \
"Arquivo" "Converte um arquivo" off \
"Pasta" "Converte todos os arquivos de uma pasta" off \
"Normalizar" "Ajusta o volume de arquivos de audio" off \
"Freqüencia" "Ajusta a freqüencia de arquivos de audio" off \
"Sair" "Sair sem fazer nada" on `
case "$opcao"
in
Arquivo ) caminho ; tipo="file" ; choiceformat
;;
Pasta ) caminho ; tipo="dir" ; choiceformat
;;
Normalizar ) caminho ; normalizar $resposta
;;
Freqüencia ) caminho ; frequencia $resposta
;;
Sair ) break
;;
* )
break
;;
esac
done
exit