#!/bin/sh

# Tool para encodiar 
# !!!!! Este escrip necesita instalar el paquete "dialog"
# aptitude install dialog

while [ 0 ]; do
dialog --backtitle "------------------------HERRAMIENTAS PARA ENCODIAR-------------------------" \
--title "TOOL ENCODER. V 1.0" \
--menu "Elija una opcion para seguir o prosione <Cancelar> para salir." 0 68 7 \
  "1" "Instalar programas necesarios." \
  "2" "Quitando los espacios en los ficheros (recomendado)." \
  "3" "Convertir AVI  --> MPG " \
  "4" "Convertir MPG  --> AVI " \
  "5" "Convertir VOB  --> AVI " \
  "6" "Convertir RMVB --> AVI " \
  "7" "Ayuda " \
  2> opcion.tmp
if [ $? = 1 ]; then
rm -f *.tmp
clear
exit 1
fi
opcion=`cat opcion.tmp`
  if [ $opcion = 1 ];then
	     dialog --title "Instalacion de Mencoder." \
	     --msgbox 'Para la instalacion primeramente debe tener la "RAMA" "Multimedia" en su fuente APT.' 8 70
	    dialog  --yesno "Desea continuar con la instalacion." 5 40
	    if [ $? = 0 ]; then
		clear
		echo "Sí" > si.tmp
		aptitude install -y mencoder > menc.tmp < si.tmp &
		li=`cat menc.tmp | wc -l`
		for i in  $li ;
		do sleep 1; echo $i; done | dialog --gauge "Instalando Mencoder" 10 100 3 
		else
		continue
		fi
########################################
 elif [ $opcion = 2 ]; then
	dialog --title "Directorios." \
	--inputbox "Entre la ruta donde estan los videos .AVI para convertir a .MPG (Ej: /home/videos" 8 80 \
	2> ruta6.tmp
	r=`cat ruta6.tmp`
	if [ -d $r ]; then
	ls $r/*" "* > txt.tmp
	cat txt.tmp | while read FILE
	do
	target=$(echo "$FILE" | sed -e "s/ /-/")
	mv "$FILE" $target
	done
	dialog --msgbox " Proceso satisfactorio, ya puede empezar a encodiar. " 6 60
	continue
	else
	dialog --msgbox " La ruta que ha ingresado no existe vuelva a intentarlo." 6 60
	fi
	
######## Convertir AVI --> MPG ########
 elif [ $opcion = 3 ]; then
        men=`ls /usr/bin | grep mencoder`
	if [ -e $men ]; then
	dialog --msgbox "Se ha detectado que MENCODER no esta instalado, seleccione la opcion (1) para luego encodiar." 0 0
	else
	dialog --title "Directorios." \
	--inputbox "Entre la ruta donde estan los videos .AVI para convertir a .MPG (Ej: /home/videos" 8 80 \
	2> ruta.tmp
	ruta=`cat ruta.tmp`
	if [ -d $ruta ]; then
	vlist=$(ls $ruta/*.avi|cut -d'.' -f1)
	for vfile in $vlist
	do
	dialog --inputbox "Entre los bit-rates de video ( Recomendable 1127 ) " 8 70 \
	2> bitr.tmp
	BR=`cat bitr.tmp`
	dialog --inputbox "Entre los bit-rates de Audio ( Recomendable 128 ) " 8 70 \
	2> audio.tmp
	AU=`cat audio.tmp`
	mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf scale=352:240,harddup,denoise3d=4:3:6 -srate 44100 -af lavcresample=44100 -lavcopts vcodec=mpeg1video:keyint=132:vrc_buf_size=917:vrc_minrate=$BR:vbitrate=$BR:vrc_maxrate=$BR:acodec=mp2:abitrate=$AU -ofps 30000/1001 -sub $vfile.srt -font /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf -subfont-text-scale 3 -subalign 1 -o $vfile.mpg $vfile.avi
	done
	else
	dialog --msgbox " La ruta que ha ingresado no existe vuelva a intentarlo." 6 60
        fi
        continue
        fi
############  Convertir MPG --> AVI  ##############
    elif [ $opcion = 4 ];then
	men=`ls /usr/bin/ | grep mencoder`
	if [ -e $men ]; then
	dialog --msgbox "Se ha detectado que MENCODER no esta instalado, seleccione la opcion (1) para luego encodiar." 0 0
	else
	dialog --title "Directorios." \
	--inputbox "Entre la ruta donde estan los videos .MPG para convertir a .AVI (Ej: /home/videos" 8 80 \
	2> ruta1.tmp
	ruta1=`cat ruta1.tmp`
	if [ -d $ruta1 ]; then
	vlist=$(ls $ruta1/*.mpg|cut -d'.' -f1)
	for vfile in $vlist
	do
	mencoder $vfile.mpg -o $vfile.avi -vf scale=352:240 -ofps 29.979 -srate 44100 -af channels=2 -ovc xvid -xvidencopts pass=2:bitrate=1127 -oac mp3lame -lameopts vbr=3:br=128 
	done
	else
	dialog --msgbox " La ruta que ha ingresado no existe vuelva a intentarlo." 6 60
	fi
	continue
	fi
##############  Convertir VOB --> AVI  ##################
    elif [ $opcion = 5 ];then
	men=`ls /usr/bin/ | grep mencoder`
	if [ -e $men ]; then
	dialog --msgbox "Se ha detectado que MENCODER no esta instalado, seleccione la opcion (1) para luego encodiar." 0 0
	else
	dialog --title "Directorios." \
	--inputbox "Entre la ruta donde estan los videos .MPG para convertir a .3GP (Ej: /home/videos" 8 80 \
	2> ruta2.tmp
	ruta2=`cat ruta2.tmp`
    	if [ -d $ruta2 ]; then
	vlist=$(ls $ruta2/*.vob|cut -d'.' -f1)
	for vfile in $vlist
	do
	mencoder $vfile.vob -o $vfile.avi -vf scale=352:240 -ofps 29.979 -srate 44100 -af channels=2 -ovc xvid -xvidencopts pass=2:bitrate=1127 -oac mp3lame -lameopts vbr=3:br=128 
	done
	else
	dialog --msgbox " La ruta que ha ingresado no existe vuelva a intentarlo." 6 60
	fi
	continue
	fi
############ Convertir RMVB --> AVI ###########
    elif [ $opcion = 6 ];then
	men=`ls /usr/bin/ | grep mencoder`
	if [ -e $men ]; then
	dialog --msgbox "Se ha detectado que MENCODER no esta instalado, seleccione la opcion (1) para luego encodiar." 0 0
	else
	dialog --title "Directorios." \
	--inputbox "Entre la ruta donde estan los videos .RMVB para convertir .AVI (Ej: /home/videos" 8 80 \
	2> ruta3.tmp
	ruta3=`cat ruta3.tmp`
	if [ -d $ruta2 ]; then
	vlist=$(ls $ruta3/*.rmvb|cut -d'.' -f1)
	for vfile in $vlist
	do
	mencoder $vfile.rmvb -o $vfile.avi -vf scale=352:240 -ofps 29.979 -srate 44100 -af channels=2 -ovc xvid -xvidencopts pass=2:bitrate=1127 -oac mp3lame -lameopts vbr=3:br=128 
	done
	else
	dialog --msgbox " La ruta que ha ingresado no existe vuelva a intentarlo." 6 60
	fi
	continue
	fi

############ Help ########
    elif [ $opcion = 7 ];then
    dialog --title "Ayuda" \
    --msgbox '--Primer paso simpre es instalar los programas necesarios para las conversiones, una vez hecho esto no se ejecutara mas este.
--El siguiente paso para comenzar a encodiar es organizar los videos a convertir en un directorio, otro requisito si es necesario es la segunda opcion .. "Quitando los espacios en los ficheros (recomendado)" ya que los videos que en su nombre contengan espacios el script no es capaz de reconocerlos.
--Para encodiar un video; realizado los anteriores pasos pues procedemos a ejecutar cualquiera de las opciones del 3,4,5 y 6 dependiendo de la necesidad del usuario.
--En el caso de la opcion 3, el video en .AVI puede tener subtitulajes que el mencoder perfecamente lo acoplara a su salida .MPG, en los demas casos se mantiene de forma similar.' 15 80
    continue
else
continue
fi
done


