Script Para conversão de Áudio

Iniciado por biohazard, 29 de Agosto de 2005, 09:20

tópico anterior - próximo tópico

biohazard

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
Arch Linux Overlord
Kernel 2.6.25-ARCH