[Script - Bash]Convert Video to Avi

d
Autor: @Inameiname
Descripción: Script que realiza la conversion de videos MKV, VOB, MPEG, AVI, WMV etc a Avi

Requisitos para que el script funcione correctamente.


  •  lsdvd 
  •  mplayer
  •  mencoder


El script es un poco grande, como siembre dar permisos, y ejecutarlo GeekScripting@GeekScripting:~/./ConversorAvi.sh.


#!/bin/bash

# Video To Avi
# Created: Inameiname
# Version: 3.2

######################################################################################################################################################
###### OPEN IN TERMINAL ###### OPEN IN TERMINAL ###### OPEN IN TERMINAL ###### OPEN IN TERMINAL ###### OPEN IN TERMINAL ###### OPEN IN TERMINAL ######
######################################################################################################################################################

##################################################
# Run in the terminal on double-click   #
##################################################

tty -s; if [ $? -ne 0 ] ; then gnome-terminal -e "$0"; exit; fi

##################################################
# If it doesn't run in the terminal on    #
# double-click, say so     #
##################################################

[ -t 0 ] && [ -t 1 ] || { zenity --warning --text="${0}: this script must be run from a terminal." ; exit 1 ;}

######################################################################################################################################################
###### INPUT SOURCE VIDEO2AVI STUFF ###### INPUT SOURCE VIDEO2AVI STUFF ###### INPUT SOURCE VIDEO2AVI STUFF ###### INPUT SOURCE VIDEO2AVI STUFF ######
######################################################################################################################################################
##################################################
# Check whether environment variables are empty  #
##################################################

###### see if the Nautilus environment variable is empty

# if it exists, set it equal to 'INPUT_FILE'
for ARCHIVE_FULLPATH in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
    ARCHIVE_PATH=${ARCHIVE_FULLPATH%.*}
if [ -f $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ] ; then

# if select iso file:
if [ $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS = $ARCHIVE_PATH.iso ] ; then
# to get desired title on dvd
# requires lsdvd: sudo apt-get install lsdvd
lsdvd $ARCHIVE_PATH.iso

echo -n "Please enter the title number you will convert (usually the longest one):

Press 'Enter' for default (default is '1')...

"
read TITLE

# extra blank space
echo "
"

# default
if [[ -z $TITLE ]] ; then
# If no title passed, default to 1
    TITLE=1
fi

    INPUT_FILE="dvd://$TITLE -dvd-device $ARCHIVE_PATH.iso"
fi



# if select video file:
if [ $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS != $ARCHIVE_PATH.iso ] ; then
    INPUT_FILE=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
fi

fi

done

# if it's blank, set it equal to $1
if [ -z $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ] ; then
    # If it's blank, set it equal to $1
    NAUTILUS_SCRIPT_SELECTED_FILE_PATHS=$1

###### see if the '$1' variable is empty
# if it exists, set it equal to 'INPUT_FILE'
for ARCHIVE_FULLPATH in $1; do
    ARCHIVE_PATH=${ARCHIVE_FULLPATH%.*}
if [ -f $1 ] ; then

# if select iso file:
if [ $1 = $ARCHIVE_PATH.iso ] ; then
# to get desired title on dvd
# requires lsdvd: sudo apt-get install lsdvd
lsdvd $ARCHIVE_PATH.iso

echo -n "Please enter the title number you will convert (usually the longest one):

Press 'Enter' for default (default is '1')...

"
read TITLE

# extra blank space
echo "
"

# default
if [[ -z $TITLE ]] ; then
# If no title passed, default to 1
    TITLE=1
fi

    INPUT_FILE="dvd://$TITLE -dvd-device $ARCHIVE_PATH.iso"
fi

# if select video file:
if [ $1 != $ARCHIVE_PATH.iso ] ; then
    INPUT_FILE=$1
fi

fi

done



# if it's blank, do the following:
if [ -z "$1" ] ; then



##################################################
# Input DVD/ISO/VIDEO file menu    #
##################################################

echo -n "What do you want to convert to AVI?:

(1) DVD
(2) ISO file
(3) Video file (such as MKV, VOB, MPEG, AVI, WMV, and etc.)

Press 'Enter' for default (default is '1')...

"
read TYPE

# extra blank space
echo "
"

###### Input DVD/ISO/VIDEO source default ######

if [[ -z $TYPE ]] ; then
    # If no media passed, default to 1
    TYPE=1
fi

###### Input DVD/ISO/VIDEO source ######
###### DVD to AVI
if [[ $TYPE = 1 ]] ; then

# to get desired device
df -h -x tmpfs -x usbfs

echo -n "Please enter the appropriate DVD drive:

(1) /dev/dvd
(2) /dev/sr0
(3) /dev/sr1
(4) /dev/sr2
(5) custom

Press 'Enter' for default (default is '1')...

"
read DEVICE_NUMBER

# extra blank space
echo "
"

# default
if [[ -z $DEVICE_NUMBER ]] ; then
# If no device passed, default to /dev/dvd
    DEVICE=/dev/dvd
fi
# preset
if [[ $DEVICE_NUMBER = 1 ]] ; then
    DEVICE=/dev/dvd
fi
if [[ $DEVICE_NUMBER = 2 ]] ; then
    DEVICE=/dev/sr0
fi
if [[ $DEVICE_NUMBER = 3 ]] ; then
    DEVICE=/dev/sr1
fi
if [[ $DEVICE_NUMBER = 4 ]] ; then
    DEVICE=/dev/sr2
fi
# custom
if [[ $DEVICE_NUMBER = 5 ]] ; then
    echo -n "Please enter the appropriate DVD drive:  "
    echo -n "...like this: '/dev/dvd'..."
    read CUSTOM_DEVICE
    DEVICE=$CUSTOM_DEVICE
fi

# to get desired title on dvd
# requires lsdvd: sudo apt-get install lsdvd
lsdvd $DEVICE

echo -n "Please enter the title number you will convert (usually the longest one):

Press 'Enter' for default (default is '1')...

"
read TITLE

# extra blank space
echo "
"

# default
if [[ -z $TITLE ]] ; then
# If no title passed, default to 1
TITLE=1
fi

# to decide to copy straight from the DVD or first copy to hard drive to ISO
echo -n "Would you first like to copy the DVD onto your hard drive (to ISO)?:

(1) Yes (Highly Recommended)
(2) No

Press 'Enter' for default (default is '1')...

"
read DVD2ISO

# extra blank space
echo "
"

# default
if [[ -z $DVD2ISO ]] ; then
# If no DVD2ISO passed, default to 1
dd if=$DEVICE of=NEW.iso
INPUT_FILE="dvd://$TITLE -dvd-device NEW.iso"
fi
# preset
if [[ $DVD2ISO = 1 ]] ; then
dd if=$DEVICE of=NEW.iso
INPUT_FILE="dvd://$TITLE -dvd-device NEW.iso"
fi
if [[ $DVD2ISO = 2 ]] ; then
INPUT_FILE="dvd://$TITLE -dvd-device $DEVICE"
fi

fi

###### ISO to AVI
if [[ $TYPE = 2 ]] ; then

echo -n "Please enter the full path for the ISO:

Example: /home/(your username)/Videos/NEW.iso...

"
read ISO

# extra blank space
echo "
"

# to get desired title on dvd
# requires lsdvd: sudo apt-get install lsdvd
lsdvd $ISO

echo -n "Please enter the title number you will convert (usually the longest one):

Press 'Enter' for default (default is '1')...

"
read TITLE

# extra blank space
echo "
"

# default
if [[ -z $TITLE ]] ; then
# If no title passed, default to 1
TITLE=1
fi

INPUT_FILE="dvd://$TITLE -dvd-device $ISO"
fi

###### Video to AVI
if [[ $TYPE = 3 ]] ; then

echo -n "Please enter the name for the input file (full path, with extension):

It can be any type, such as MKV, VOB, MPEG, AVI, WMV, and etc...

Example: /home/(your username)/Videos/NEW.avi...

"
read VIDEO_FILE

# extra blank space
echo "
"

INPUT_FILE=$VIDEO_FILE
fi

##################################################
# Close the variable statements    #
##################################################

fi

fi

######################################################################################################################################################
###### GENERAL VIDEO2AVI STUFF ###### GENERAL VIDEO2AVI STUFF ###### GENERAL VIDEO2AVI STUFF ###### GENERAL VIDEO2AVI STUFF ###### GENERAL VIDEO2AVI STUFF
######################################################################################################################################################

##################################################
# Cropping (done automatically)    #
##################################################

###### start a timer to kill mplayer
echo "Cropdetect is now running...

A few seconds of your video should now be playing...
"
###### start a timer to kill mplayer
(sleep 6 && killall mplayer)&

###### start the mplayer cropdetect on on the DVD at a random time
mplayer $INPUT_FILE -ss 0:03:10 -vf cropdetect &> mplayer.tmp

###### get last crop value from mplayer output and store in variable
CROP_VALUES=$(awk -F'crop=' '/\[CROP\]/{f=$2} END{print f}' ./mplayer.tmp |cut -d')' -f1)

###### print detected crop values
echo -e "\n\nDetected crop values = ${CROP_VALUES}\n\n"

##################################################
# Output desired name for file    #
##################################################

###### file input
echo -n "Please enter a name for the output file (without extension):

Press 'Enter' for default (default is 'NEW')...

"
read OUTPUT_FILE

###### extra blank space
echo "
"
###### default ######

if [[ -z $OUTPUT_FILE ]] ; then
    # If no file passed, default to NEW
    OUTPUT_FILE=NEW_$(date "+%y.%m.%d_%H.%M")
fi

##################################################
# Available processor number (done automatically)#
##################################################

CPUS=$(grep -c processor /proc/cpuinfo)

echo "Using $CPUS processor(s)..."

###### extra blank space
echo "
"

######################################################################################################################################################
###### MAIN MENU OPTIONS AND CHOICES ###### MAIN MENU OPTIONS AND CHOICES ###### MAIN MENU OPTIONS AND CHOICES ###### MAIN MENU OPTIONS AND CHOICES ######
######################################################################################################################################################
##################################################
# Preset/Custom type options    #
##################################################

echo -n "Select a quality level:
(1) exact copy quality MPEG      (DVD/ISO sources only)
(2) exact copy audio-only quality AC3     (DVD/ISO sources only)
(3) very high quality H.264 (2-pass)     (350min:105min film w/2 1.5mhz cpus)
(4) very high quality DIVX/MPEG-4 (2-pass)  (270min:105min film w/2 1.5mhz cpus)
(5) very high quality XVID (2-pass)     (220min:105min film w/2 1.5mhz cpus)
(6) very high quality H.264 (1-pass)     (400min:105min film w/2 1.5mhz cpus)
(7) very high quality DIVX/MPEG-4 (1-pass)  (230min:105min film w/2 1.5mhz cpus)
(8) very high quality XVID (1-pass)     (180min:105min film w/2 1.5mhz cpus)
(9) high quality H.264 (2-pass)      (240min:105min film w/2 1.5mhz cpus)
(10)high quality DIVX/MPEG-4 (2-pass)     (190min:105min film w/2 1.5mhz cpus)
(11)high quality XVID (2-pass)      (135min:105min film w/2 1.5mhz cpus)
(12)high quality H.264 (1-pass)           (200min:105min film w/2 1.5mhz cpus)
(13)high quality DIVX/MPEG-4 (1-pass)     (150min:105min film w/2 1.5mhz cpus)
(14)high quality XVID (1-pass)      (090min:105min film w/2 1.5mhz cpus)
(15)fast quality H.264 (1-pass)           (155min:105min film w/2 1.5mhz cpus)
(16)fast quality DIVX/MPEG-4 (1-pass)     (065min:105min film w/2 1.5mhz cpus)
(17)fast quality XVID (1-pass)      (065min:105min film w/2 1.5mhz cpus)
(18)fast quality XVID YouTube (1-pass)     (025min:105min film w/2 1.5mhz cpus)
(19)realtime quality DIVX/MPEG-4 (1-pass)   (050min:105min film w/2 1.5mhz cpus)
(20)realtime quality XVID (1-pass)     (060min:105min film w/2 1.5mhz cpus)
(21)low quality WMV (1-pass)      (017min:105min film w/2 1.5mhz cpus)
(22)custom quality
Press 'Enter' for default (default is '14')...  "
read Q

###### extra blank space
echo "
"
###### default ######

if [[ -z $Q ]] ; then
    # If no quality passed, default to 14
    Q=14
fi

##################################################
# Frame rate      #
##################################################

###### frame rate menu
if [[ $Q != 1 && $Q != 2 ]] ; then
echo -n "Select a frame rate level:

(1) NTSC-VIDEO  (~ 30 fps)
(2) NTSC-FILM (~ 24 fps)
(3) PAL  (~ 25 fps)
(4) Streaming (~ 15 fps)
(5) custom

Press 'Enter' for default (default is '2')...

"
read FRAME_RATE_NUMBER

###### extra blank space
echo "
"
###### default
if [[ -z $FRAME_RATE_NUMBER ]] ; then
    # If no frame rate passed, default to 2
    FRAME_RATE="-ofps 24000/1001"
fi

###### preset
if [[ $FRAME_RATE_NUMBER = 1 ]] ; then
    FRAME_RATE="-ofps 30000/1001"
fi

if [[ $FRAME_RATE_NUMBER = 2 ]] ; then
    FRAME_RATE="-ofps 24000/1001"
fi

if [[ $FRAME_RATE_NUMBER = 3 ]] ; then
    FRAME_RATE="-ofps 25000/1001"
fi

if [[ $FRAME_RATE_NUMBER = 4 ]] ; then
    FRAME_RATE="-ofps 15000/1001"
fi

###### custom
if [[ $FRAME_RATE_NUMBER = 5 ]] ; then
    echo -n "Please enter a frame rate:  "
    echo -n "...like this: '-ofps 15000/1001'..."
    read CUSTOM_FRAME_RATE
    FRAME_RATE=$CUSTOM_FRAME_RATE
fi

fi

##################################################
# Divx ffourcc menu     #
##################################################

###### DivX ffourcc menu
if [[ $Q != 1 && $Q != 2 && $Q != 3 && $Q != 5 && $Q != 6 && $Q != 8 && $Q != 9 && Q != 11 && $Q != 12 && $Q != 14 && $Q != 15 && $Q != 17 && $Q != 18 && $Q != 20 && $Q != 21 && $Q != 22 ]] ; then
echo -n "Select the desired Divx or generic MPEG4 quality:

(1) FFMPEG MPEG-4
(2) DivX MPEG-4 Version 4
(3) DivX MPEG-4 Version 5

Press 'Enter' for default (default is '3')...

"
read DIVX_NUMBER



###### extra blank space
echo "
"

###### default
if [[ -z $DIVX_NUMBER ]] ; then
    # If no file passed, default to 3
    DIVX="-ffourcc DX50"
fi

###### preset
if [[ $DIVX_NUMBER = 1 ]] ; then
    DIVX=
fi

if [[ $DIVX_NUMBER = 2 ]] ; then
    DIVX="-ffourcc DIVX"
fi

if [[ $DIVX_NUMBER = 3 ]] ; then
    DIVX="-ffourcc DX50"
fi

fi

##################################################
# Conversion is starting    #
##################################################

###### conversion is starting message
if [[ $Q != 22 ]] ; then
read -sn 1 -p "Your conversion is about to begin, press any key to continue..."
fi

###### extra blank space
echo "
"

##################################################
# Conversions      #
##################################################

###### preset ######

###### exact copy quality (DVD/ISO sources only)
if [[ $Q = 1 ]] ; then
# If 1 passed, use MPEG exact copy quality
mplayer $INPUT_FILE -dumpstream -dumpfile $OUTPUT_FILE.mpg
fi

if [[ $Q = 2 ]] ; then
# If 2 passed, use MPEG exact copy audio-only quality
mplayer $INPUT_FILE -dumpaudio -dumpfile $OUTPUT_FILE.ac3
fi

###### very high quality
if [[ $Q = 3 ]] ; then
# very high H.264 quality (2-pass)
# actual two-pass conversion
mencoder $INPUT_FILE -nosound -ovc x264 -x264encopts pass=1:subq=1:partitions=all:8x8dct:me=umh:frameref=1:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=2000 -vf pp=de,pullup,softskip,harddup,crop=${CROP_VALUES} $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=192:vol=3 -ovc x264 -x264encopts pass=2:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=2000 -vf pp=de,pullup,softskip,harddup,crop=${CROP_VALUES} $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 4 ]] ; then
# very high MPEG4 quality (2-pass)
# actual two-pass conversion
mencoder $INPUT_FILE -nosound -ovc lavc $DIVX -lavcopts vpass=1:vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo:vhq:threads=$CPUS:vbitrate=2000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES} $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=192:vol=3 -ovc lavc $DIVX -lavcopts vpass=2:vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:vhq:threads=$CPUS:vbitrate=2000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES} $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 5 ]] ; then
# very high XVID quality (2-pass)
# actual two-pass conversion
mencoder $INPUT_FILE -nosound -ovc xvid -xvidencopts pass=1:chroma_opt:vhq=1:bvhq=1:quant_type=mpeg:threads=$CPUS:bitrate=2000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES} $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=192:vol=3 -ovc xvid -xvidencopts pass=2:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:threads=$CPUS:bitrate=2000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES} $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 6 ]] ; then
# very high H.264 quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=192:vol=3 -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=2000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES} $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 7 ]] ; then
# very high MPEG4 quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=192:vol=3 -ovc lavc $DIVX -lavcopts vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:vhq:threads=$CPUS:vbitrate=2000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES} $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 8 ]] ; then
# very high XVID quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=192:vol=3 -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:threads=$CPUS:bitrate=2000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES} $FRAME_RATE -o $OUTPUT_FILE.avi
fi



###### high quality
if [[ $Q = 9 ]] ; then
# high H.264 quality (2-pass)
# actual two-pass conversion
mencoder $INPUT_FILE -nosound -ovc x264 -x264encopts pass=1:subq=1:partitions=all:8x8dct:me=umh:frameref=1:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=-700000 -vf pp=de,pullup,softskip,harddup,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc x264 -x264encopts pass=2:subq=5:8x8dct:frameref=2:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=1200 -vf pp=de,pullup,softskip,harddup,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 10 ]] ; then
# high MPEG4 quality (2-pass)
# actual two-pass conversion
mencoder $INPUT_FILE -nosound -ovc lavc $DIVX -lavcopts vpass=1:vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo:vhq:threads=$CPUS:vbitrate=1100 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc lavc $DIVX -lavcopts vpass=2:vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo:vhq:threads=$CPUS:vbitrate=1100 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 11 ]] ; then
# high XVID quality (2-pass)
# actual two-pass conversion
mencoder $INPUT_FILE -nosound -ovc xvid -xvidencopts pass=1:vhq=1:bvhq=1:chroma_opt:quant_type=mpeg:threads=$CPUS:bitrate=-700000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc xvid -xvidencopts pass=2:vhq=2:bvhq=1:chroma_opt:quant_type=mpeg:threads=$CPUS:bitrate=-700000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 12 ]] ; then
# high H.264 quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc x264 -x264encopts subq=5:8x8dct:frameref=2:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=-700000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 13 ]] ; then
# high MPEG4 quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc lavc $DIVX -lavcopts vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo:vhq:threads=$CPUS:vbitrate=1100 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 14 ]] ; then
# high XVID quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc xvid -xvidencopts vhq=2:bvhq=1:chroma_opt:quant_type=mpeg:threads=$CPUS:bitrate=-700000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

###### fast quality
if [[ $Q = 15 ]] ; then
# fast H.264 quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc x264 -x264encopts subq=4:8x8dct:bframes=2:b_pyramid=normal:weight_b:threads=auto:bitrate=-700000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 16 ]] ; then
# fast MPEG4 quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc lavc $DIVX -lavcopts vcodec=mpeg4:mbd=2:trell:v4mv:turbo:vhq:threads=$CPUS:vbitrate=1100 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 17 ]] ; then
# fast XVID quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc xvid -xvidencopts turbo:vhq=0:threads=$CPUS:bitrate=-700000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

###### YouTube quality
if [[ $Q = 18 ]] ; then
# YouTube MPEG4 quality (1-pass)
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc lavc $DIVX -lavcopts vcodec=mpeg4:threads=$CPUS -ffourcc xvid -vf scale=320:-2,expand=:240:::1 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

###### realtime quality
if [[ $Q = 19 ]] ; then
# realtime MPEG4 quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc lavc $DIVX -lavcopts vcodec=mpeg4:mbd=2:turbo:vhq:threads=$CPUS:vbitrate=1100 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $Q = 20 ]] ; then
# realtime XVID quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts abr:br=128:vol=3 -ovc xvid -xvidencopts turbo:nochroma_me:notrellis:max_bframes=0:vhq=0:threads=$CPUS:bitrate=-700000 -vf pp=de,pullup,softskip,crop=${CROP_VALUES},scale -zoom -xy 624 $FRAME_RATE -o $OUTPUT_FILE.avi
fi

###### low quality
if [[ $Q = 21 ]] ; then
# low WMV quality (1-pass)
# actual one-pass conversion
mencoder $INPUT_FILE -oac mp3lame -lameopts cbr:br=16:vol=3 -ovc lavc -lavcopts vcodec=wmv2:vbitrate=100 -vf scale -zoom -xy 240 $FRAME_RATE -o $OUTPUT_FILE.wmv
fi

######################################################################################################################################################
###### CUSTOM QUALITY CHOICE #17 OPTION AND CHOICES ###### CUSTOM QUALITY CHOICE #17 OPTION AND CHOICES ###### MISCELLANEOUS ###### CUSTOM QUALITY CHOICE
######################################################################################################################################################

##################################################
# Custom quality     #
##################################################

if [[ $Q = 22 ]] ; then
# If 22 passed, use custom quality (1-pass and 2-pass)

##################################################
# Custom type options     #
##################################################

echo -n "What type of AVI do you want to create with custom settings?:

(1)  H.264  (2-Pass)
(2)  H.264  (1-Pass)
(3)  DIVX/MPEG-4 (2-Pass)
(4)  DIVX/MPEG-4 (1-Pass)
(5)  XVID  (2-Pass)
(6)  XVID  (1-Pass)

Press 'Enter' for default (default is '6')...

"
read MPEG4_TYPE

###### extra blank space
echo "
"

###### default ######

if [[ -z $MPEG4_TYPE ]] ; then
    # If no media passed, default to 6
    MPEG4_TYPE=6
fi
erlo
##################################################
# Custom Divx ffourcc menu    #
##################################################

###### DivX ffourcc menu
if [[ $MPEG4_TYPE != 1 && $MPEG4_TYPE != 2 && $MPEG4_TYPE != 5 && $MPEG4_TYPE != 6 ]] ; then
echo -n "Select the desired Divx or generic MPEG4 quality:

(1) FFMPEG MPEG-4
(2) DivX MPEG-4 Version 4
(3) DivX MPEG-4 Version 5

Press 'Enter' for default (default is '3')...

"
read CUSTOM_DIVX_NUMBER

###### extra blank space
echo "
"

###### default
if [[ -z $CUSTOM_DIVX_NUMBER ]] ; then
    # If no file passed, default to 3
    CUSTOM_DIVX="-ffourcc DX50"
fi

###### preset
if [[ $CUSTOM_DIVX_NUMBER = 1 ]] ; then
    CUSTOM_DIVX=
fi

if [[ $CUSTOM_DIVX_NUMBER = 2 ]] ; then
    CUSTOM_DIVX="-ffourcc DIVX"
fi

if [[ $CUSTOM_DIVX_NUMBER = 3 ]] ; then
    CUSTOM_DIVX="-ffourcc DX50"
fi

fi

##################################################
# Custom scaling     #
##################################################

echo -n "Choose a resolution:

(1)  original resolution(cropped, but no scaling)
(2)  624 x 352 scaling (fullscreen/widescreen)
(3)  624 x ??? scaling (fullscreen/widescreen) (auto-height)
(4)  800 x 600 scaling (fullscreen)
(5)  800 x ??? scaling (fullscreen)   (auto-height)
(6)  600 x 400 scaling (widescreen)
(7)  600 x ??? scaling (widescreen)   (auto-height)
(8)  640 x 480 scaling (fullscreen)
(9)  640 x ??? scaling (fullscreen)   (auto-height)
(10) 704 x 294 scaling (widescreen) (2.35:1)
(11) 704 x ??? scaling (widescreen) (2.35:1)  (auto-height)
(12) 768 x 432 scaling (widescreen) (16:9)
(13) 768 x ??? scaling (widescreen) (16:9)  (auto-height)
(14) custom

Press 'Enter' for default (default is '3')...

"
read SCALING_NUMBER

###### extra blank space
echo "
"

###### default
if [[ -z $SCALING_NUMBER ]] ; then
    # If no file passed, default to 3
    SCALING="scale -zoom -xy 624"
fi

###### preset
if [[ $SCALING_NUMBER = 1 ]] ; then
    SCALING="scale=${CROP_VALUES}"
fi

if [[ $SCALING_NUMBER = 2 ]] ; then
    SCALING="scale=624:352"
fi

if [[ $SCALING_NUMBER = 3 ]] ; then
    SCALING="scale -zoom -xy 624"
fi

if [[ $SCALING_NUMBER = 4 ]] ; then
    SCALING="scale=800:600"
fi

if [[ $SCALING_NUMBER = 5 ]] ; then
    SCALING="scale -zoom -xy 800"
fi

if [[ $SCALING_NUMBER = 6 ]] ; then
    SCALING="scale=600:400"
fi

if [[ $SCALING_NUMBER = 7 ]] ; then
    SCALING="scale -zoom -xy 600"
fi

if [[ $SCALING_NUMBER = 8 ]] ; then
    SCALING="scale=640:480"
fi

if [[ $SCALING_NUMBER = 9 ]] ; then
    SCALING="scale -zoom -xy 640"
fi

if [[ $SCALING_NUMBER = 10 ]] ; then
    SCALING="scale=704:294"
fi

if [[ $SCALING_NUMBER = 11 ]] ; then
    SCALING="sscale -zoom -xy 704"
fi

if [[ $SCALING_NUMBER = 12 ]] ; then
    SCALING="scale=768:432"
fi

if [[ $SCALING_NUMBER = 13 ]] ; then
    SCALING="scale -zoom -xy 768"
fi

###### custom
if [[ $SCALING_NUMBER = 14 ]] ; then
    echo -n "Please enter a custom scale:  "
    echo -n "...like this: 'scale=800:600' or 'scale -zoom -xy 624'..."
    read CUSTOM_SCALING
    SCALING=$CUSTOM_SCALING
fi

##################################################
# Custom total/video bitrate level   #
##################################################

echo -n "Select a total/video bitrate level:

(1)  -350000 (= max file size of ~ 350MB) (H.264/XVID only)
(2)  -700000 (= max file size of ~ 700MB) (H.264/XVID only)
(3)  -1000000 (= max file size of ~ 1GB) (H.264/XVID only)
(4)  400 kbps
(5)  600 kbps
(6)  800 kbps
(7)  1000 kbps
(8)  1100 kbps
(9)  1150 kbps
(10) 1200 kbps
(11) 1250 kbps
(12) 1500 kbps
(13) 2000 kbps
(14) 3000 kbps
(15) 4000 kbps
(16) 5000 kbps
(17) custom

Press 'Enter' for default (default is '2')...

"
read BITRATE_NUMBER

###### extra blank space
echo "
"

###### default
if [[ -z $BITRATE_NUMBER ]] ; then
    # If no file passed, default to 2
    BITRATE=-700000
fi

###### preset
if [[ $BITRATE_NUMBER = 1 ]] ; then
    BITRATE=-350000
fi

if [[ $BITRATE_NUMBER = 2 ]] ; then
    BITRATE=-700000
fi

if [[ $BITRATE_NUMBER = 3 ]] ; then
    BITRATE=-1000000
fi

if [[ $BITRATE_NUMBER = 4 ]] ; then
    BITRATE=400
fi

if [[ $BITRATE_NUMBER = 5 ]] ; then
    BITRATE=600
fi

if [[ $BITRATE_NUMBER = 6 ]] ; then
    BITRATE=800
fi

if [[ $BITRATE_NUMBER = 7 ]] ; then
    BITRATE=1000
fi

if [[ $BITRATE_NUMBER = 8 ]] ; then
    BITRATE=1100
fi

if [[ $BITRATE_NUMBER = 9 ]] ; then
    BITRATE=1150
fi

if [[ $BITRATE_NUMBER = 10 ]] ; then
    BITRATE=1200
fi

if [[ $BITRATE_NUMBER = 11 ]] ; then
    BITRATE=1250
fi

if [[ $BITRATE_NUMBER = 12 ]] ; then
    BITRATE=1500
fi

if [[ $BITRATE_NUMBER = 13 ]] ; then
    BITRATE=2000
fi

if [[ $BITRATE_NUMBER = 14 ]] ; then
    BITRATE=3000
fi

if [[ $BITRATE_NUMBER = 15 ]] ; then
    BITRATE=4000
fi

if [[ $BITRATE_NUMBER = 16 ]] ; then
    BITRATE=5000
fi

###### custom
if [[ $BITRATE_NUMBER = 17 ]] ; then
    echo -n "Please enter a custom total/video bitrate:  "
    echo -n "...like this: '1175'..."
    read CUSTOM_BITRATE
    BITRATE=$CUSTOM_BITRATE
fi

##################################################
# Custom audio track     #
##################################################

echo -n "Select an audio track:

(1) -aid 0 (good when getting no audio with others) (ex.: Custom DVD rips)
(2) -aid 127
(3) -aid 128 (often main language non-director's commentary audio track)
(4) -aid 129 (often second track, such as director's commentary)
(5) -aid 130
(6) -aid 131
(7) -aid 132
(8) -aid 160
(9) custom

Press 'Enter' for default (default is 'null', which is DVD default)...

"
read AUDIO_TRACK_NUMBER

###### extra blank space
echo "
"

###### default
if [[ -z $AUDIO_TRACK_NUMBER ]] ; then
    # If no file passed, default to null
    AUDIO_TRACK=
fi

###### preset
if [[ $AUDIO_TRACK_NUMBER = 1 ]] ; then
    AUDIO_TRACK="-aid 0"
fi

if [[ $AUDIO_TRACK_NUMBER = 2 ]] ; then
    AUDIO_TRACK="-aid 127"
fi

if [[ $AUDIO_TRACK_NUMBER = 3 ]] ; then
    AUDIO_TRACK="-aid 128"
fi

if [[ $AUDIO_TRACK_NUMBER = 4 ]] ; then
    AUDIO_TRACK="-aid 129"
fi

if [[ $AUDIO_TRACK_NUMBER = 5 ]] ; then
    AUDIO_TRACK="-aid 130"
fi

if [[ $AUDIO_TRACK_NUMBER = 6 ]] ; then
    AUDIO_TRACK="-aid 131"
fi

if [[ $AUDIO_TRACK_NUMBER = 7 ]] ; then
    AUDIO_TRACK="-aid 132"
fi

if [[ $AUDIO_TRACK_NUMBER = 8 ]] ; then
    AUDIO_TRACK="-aid 160"
fi

###### custom
if [[ $AUDIO_TRACK_NUMBER = 9 ]] ; then
    echo -n "Please enter a custom audio track:  "
    echo -n "...like this: '-aid 128'..."
    read CUSTOM_AUDIO_TRACK
    AUDIO_TRACK=$CUSTOM_AUDIO_TRACK
fi

##################################################
# Custom audio track language    #
##################################################

echo -n "Select an audio track language:

(1)  Chinese - zh
(2)  Dansk (Danish) - da
(3)  Deutsch - de
(4)  English - en
(5)  Español - es
(6)  Français - fr
(7)  Greek - el
(8)  Italiano (Italian) - it
(9)  Japanese - ja
(10) Korean - ko
(11) Nederlands - nl
(12) Polish - pl
(13) Portugues - pt
(14) Russian - ru

Or input your own (like this: 'en')...

Press 'Enter' for default (default is 'null', which is DVD default)...

"
read AUDIO_LANGUAGE_NUMBER

###### extra blank space
echo "
"

###### default
if [[ -z $AUDIO_LANGUAGE_NUMBER ]] ; then
    # If no file passed, default to null
    AUDIO_LANGUAGE=
fi

###### preset
if [[ $AUDIO_LANGUAGE_NUMBER = 1 ]] ; then
    AUDIO_LANGUAGE="-alang zh"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 2 ]] ; then
    AUDIO_LANGUAGE="-alang da"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 3 ]] ; then
    AUDIO_LANGUAGE="-alang de"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 4 ]] ; then
    AUDIO_LANGUAGE="-alang en"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 5 ]] ; then
    AUDIO_LANGUAGE="-alang es"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 6 ]] ; then
    AUDIO_LANGUAGE="-alang fr"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 7 ]] ; then
    AUDIO_LANGUAGE="-alang el"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 8 ]] ; then
    AUDIO_LANGUAGE="-alang it"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 9 ]] ; then
    AUDIO_LANGUAGE="-alang ja"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 10 ]] ; then
    AUDIO_LANGUAGE="-alang ko"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 11 ]] ; then
    AUDIO_LANGUAGE="-alang nl"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 12 ]] ; then
    AUDIO_LANGUAGE="-alang pl"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 13 ]] ; then
    AUDIO_LANGUAGE="-alang pt"
fi

if [[ $AUDIO_LANGUAGE_NUMBER = 14 ]] ; then
    AUDIO_LANGUAGE="-alang ru"
fi

##################################################
# Custom audio bitrate level    #
##################################################

echo -n "Select an audio bitrate level:

(1) 48 kbps
(2) 64 kbps
(3) 128 kbps
(4) 160 kbps
(5) 192 kbps
(6) 224 kbps
(7) 256 kbps
(8) 320 kbps
(9) custom

Press 'Enter' for default (default is '3')...

"
read AUDIO_BITRATE_NUMBER

###### extra blank space
echo "
"

###### default
if [[ -z $AUDIO_BITRATE_NUMBER ]] ; then
    # If no file passed, default to 3
    AUDIO_BITRATE=128
fi



###### preset
if [[ $AUDIO_BITRATE_NUMBER = 1 ]] ; then
    AUDIO_BITRATE=48
fi

if [[ $AUDIO_BITRATE_NUMBER = 2 ]] ; then
    AUDIO_BITRATE=96
fi

if [[ $AUDIO_BITRATE_NUMBER = 3 ]] ; then
    AUDIO_BITRATE=128
fi

if [[ $AUDIO_BITRATE_NUMBER = 4 ]] ; then
    AUDIO_BITRATE=160
fi

if [[ $AUDIO_BITRATE_NUMBER = 5 ]] ; then
    AUDIO_BITRATE=192
fi

if [[ $AUDIO_BITRATE_NUMBER = 6 ]] ; then
    AUDIO_BITRATE=224
fi

if [[ $AUDIO_BITRATE_NUMBER = 7 ]] ; then
    AUDIO_BITRATE=256
fi

if [[ $AUDIO_BITRATE_NUMBER = 8 ]] ; then
    AUDIO_BITRATE=320
fi



###### custom
if [[ $AUDIO_BITRATE_NUMBER = 9 ]] ; then
    echo -n "Please enter a custom audio bitrate level:  "
    echo -n "...like this: '100'..."
    read CUSTOM_AUDIO_BITRATE
    AUDIO_BITRATE=$CUSTOM_AUDIO_BITRATE
fi



##################################################
# Custom audio bitrate type    #
##################################################

echo -n "Select an audio bitrate type:

(1) Average Bitrate
(2) Constant Bitrate
(3) Variable Bitrate

Press 'Enter' for default (default is '1')...

"
read AUDIO_BITRATE_TYPE_NUMBER



###### extra blank space
echo "
"



###### default
if [[ -z $AUDIO_BITRATE_TYPE_NUMBER ]] ; then
    # If no file passed, default to abr
    AUDIO_BITRATE_TYPE=abr
fi



###### preset
if [[ $AUDIO_BITRATE_TYPE_NUMBER = 1 ]] ; then
    AUDIO_BITRATE_TYPE=abr
fi

if [[ $AUDIO_BITRATE_TYPE_NUMBER = 2 ]] ; then
    AUDIO_BITRATE_TYPE=cbr
fi

if [[ $AUDIO_BITRATE_TYPE_NUMBER = 3 ]] ; then
    AUDIO_BITRATE_TYPE=vbr
fi



##################################################
# Custom audio volume level    #
##################################################

echo -n "Select an audio volume increase level (1-10):

Press 'Enter' for default (default is '3')...

"
read AUDIO_VOLUME_LEVEL



###### extra blank space
echo "
"



###### default
if [[ -z $AUDIO_VOLUME_LEVEL ]] ; then
    # If no file passed, default to 3
    AUDIO_VOLUME_LEVEL=3
fi



##################################################
# Subtitles?      #
##################################################

echo -n "Do you want subtitles?:

(1) No
(2) Yes (DVD/ISO only)

Press 'Enter' for default (default is '1', for no subtitles)...

"
read SUBTITLE_NUMBER



###### extra blank space
echo "
"



###### default
if [[ -z $SUBTITLE_NUMBER ]] ; then
    # If no file passed, default to null
    SUBTITLE_TRACK=
    SUBTITLE_LANGUAGE=
    SUBTITLE_TYPE=
fi



###### preset
if [[ $SUBTITLE_NUMBER = 1 ]] ; then
    SUBTITLE_TRACK=
    SUBTITLE_LANGUAGE=
    SUBTITLE_TYPE=
fi

if [[ $SUBTITLE_NUMBER = 2 ]] ; then



##################################################
# Custom subtitle track     #
##################################################

echo -n "Select a subtitle track:

(1) -sid 0
(2) -sid 1
(3) -sid 2
(4) -sid 3
(5) -sid 4
(6) -sid 5
(7) -sid 6
(8) -sid 7
(9) custom

Press 'Enter' for default (default is 'null')...

"
read SUBTITLE_TRACK_NUMBER



###### extra blank space
echo "
"



###### default
if [[ -z $SUBTITLE_TRACK_NUMBER ]] ; then
    # If no file passed, default to null
    SUBTITLE_TRACK=
fi



###### preset
if [[ $SUBTITLE_TRACK_NUMBER = 1 ]] ; then
    SUBTITLE_TRACK="-sid 0"
fi

if [[ $SUBTITLE_TRACK_NUMBER = 2 ]] ; then
    SUBTITLE_TRACK="-sid 1"
fi

if [[ $SUBTITLE_TRACK_NUMBER = 3 ]] ; then
    SUBTITLE_TRACK="-sid 2"
fi

if [[ $SUBTITLE_TRACK_NUMBER = 4 ]] ; then
    SUBTITLE_TRACK="-sid 3"
fi

if [[ $SUBTITLE_TRACK_NUMBER = 5 ]] ; then
    SUBTITLE_TRACK="-sid 4"
fi

if [[ $SUBTITLE_TRACK_NUMBER = 6 ]] ; then
    SUBTITLE_TRACK="-sid 5"
fi

if [[ $SUBTITLE_TRACK_NUMBER = 7 ]] ; then
    SUBTITLE_TRACK="-sid 6"
fi

if [[ $SUBTITLE_TRACK_NUMBER = 8 ]] ; then
    SUBTITLE_TRACK="-sid 7"
fi



###### custom
if [[ $SUBTITLE_TRACK_NUMBER = 9 ]] ; then
    echo -n "Please enter a custom subtitles track:  "
    echo -n "...like this: '-sid 10'..."
    read CUSTOM_SUBTITLE_TRACK
    SUBTITLE_TRACK=$CUSTOM_SUBTITLE_TRACK
fi



##################################################
# Custom subtitles track language   #
##################################################

echo -n "Select a subtitles track language:

(1)  Chinese - zh
(2)  Dansk (Danish) - da
(3)  Deutsch - de
(4)  English - en
(5)  Español - es
(6)  Français - fr
(7)  Greek - el
(8)  Italiano (Italian) - it
(9)  Japanese - ja
(10) Korean - ko
(11) Nederlands - nl
(12) Polish - pl
(13) Portugues - pt
(14) Russian - ru

Or input your own (like this: 'en')...

Press 'Enter' for default (default is 'null')...

"
read SUBTITLE_LANGUAGE_NUMBER



###### extra blank space
echo "
"



###### default
if [[ -z $SUBTITLE_LANGUAGE_NUMBER ]] ; then
    # If no file passed, default to null
    SUBTITLE_LANGUAGE=
fi



###### preset
if [[ $SUBTITLE_LANGUAGE_NUMBER = 1 ]] ; then
    SUBTITLE_LANGUAGE="-slang zh"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 2 ]] ; then
    SUBTITLE_LANGUAGE="-slang da"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 3 ]] ; then
    SUBTITLE_LANGUAGE="-slang de"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 4 ]] ; then
    SUBTITLE_LANGUAGE="-slang en"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 5 ]] ; then
    SUBTITLE_LANGUAGE="-slang es"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 6 ]] ; then
    SUBTITLE_LANGUAGE="-slang fr"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 7 ]] ; then
    SUBTITLE_LANGUAGE="-slang el"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 8 ]] ; then
    SUBTITLE_LANGUAGE="-slang it"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 9 ]] ; then
    SUBTITLE_LANGUAGE="-slang ja"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 10 ]] ; then
    SUBTITLE_LANGUAGE="-slang ko"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 11 ]] ; then
    SUBTITLE_LANGUAGE="-slang nl"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 12 ]] ; then
    SUBTITLE_LANGUAGE="-slang pl"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 13 ]] ; then
    SUBTITLE_LANGUAGE="-slang pt"
fi

if [[ $SUBTITLE_LANGUAGE_NUMBER = 14 ]] ; then
    SUBTITLE_LANGUAGE="-slang ru"
fi



##################################################
# Subtitle Kind?     #
##################################################

echo -n "What kind of subtitles do you prefer?:

(1)  Embed onto the video
(2)  Embed into a separate file

Press 'Enter' for default (default is '1')...

"
read SUBTITLE_TYPE_NUMBER



###### extra blank space
echo "
"



###### default
if [[ -z $SUBTITLE_TYPE_NUMBER ]] ; then
    # If no file passed, default to null
    SUBTITLE_TYPE=
fi



###### preset
if [[ $SUBTITLE_TYPE_NUMBER = 1 ]] ; then
    SUBTITLE_TYPE=
fi

if [[ $SUBTITLE_TYPE_NUMBER = 2 ]] ; then
    SUBTITLE_TYPE="-vobsubout ${OUTPUT_FILE}"
fi



###### closes the preset of 'yes' for subtitles
fi



##################################################
# Custom conversion is starting    #
##################################################

###### extra blank space
echo "
"



###### custom conversion is starting message
read -sn 1 -p "Your custom conversion is about to begin, press any key to continue..."



##################################################
# Custom conversions (very high quality settings)#
##################################################

###### custom preset ######

###### H.264
if [[ $MPEG4_TYPE = 1 ]] ; then
# actual two-pass conversion
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -nosound -ovc x264 -x264encopts pass=1:subq=1:partitions=all:8x8dct:me=umh:frameref=1:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=$BITRATE -vf pp=de,pullup,softskip,harddup,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -oac mp3lame -lameopts $AUDIO_BITRATE_TYPE:br=$AUDIO_BITRATE:vol=$AUDIO_VOLUME_LEVEL -ovc x264 -x264encopts pass=2:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=$BITRATE -vf pp=de,pullup,softskip,harddup,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $MPEG4_TYPE = 2 ]] ; then
# actual one-pass conversion
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -oac mp3lame -lameopts $AUDIO_BITRATE_TYPE:br=$AUDIO_BITRATE:vol=$AUDIO_VOLUME_LEVEL -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b:threads=auto:bitrate=$BITRATE -vf pp=de,pullup,softskip,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o $OUTPUT_FILE.avi
fi



###### MPEG4
if [[ $MPEG4_TYPE = 3 ]] ; then
# actual two-pass conversion
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -nosound -ovc lavc $CUSTOM_DIVX -lavcopts vpass=1:vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo:threads=$CPUS:vbitrate=$BITRATE -vf pp=de,pullup,softskip,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -oac mp3lame -lameopts $AUDIO_BITRATE_TYPE:br=$AUDIO_BITRATE:vol=$AUDIO_VOLUME_LEVEL -ovc lavc $CUSTOM_DIVX -lavcopts vpass=2:vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:threads=$CPUS:vbitrate=$BITRATE -vf pp=de,pullup,softskip,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $MPEG4_TYPE = 4 ]] ; then
# actual one-pass conversion
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -oac mp3lame -lameopts $AUDIO_BITRATE_TYPE:br=$AUDIO_BITRATE:vol=$AUDIO_VOLUME_LEVEL -ovc lavc $CUSTOM_DIVX -lavcopts vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2:threads=$CPUS:vbitrate=$BITRATE -vf pp=de,pullup,softskip,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o $OUTPUT_FILE.avi
fi



###### XVID
if [[ $MPEG4_TYPE = 5 ]] ; then
# actual two-pass conversion
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -nosound -ovc xvid -xvidencopts pass=1:chroma_opt:vhq=1:bvhq=1:quant_type=mpeg:threads=$CPUS:bitrate=$BITRATE -vf pp=de,pullup,softskip,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o '/dev/null'
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -oac mp3lame -lameopts $AUDIO_BITRATE_TYPE:br=$AUDIO_BITRATE:vol=$AUDIO_VOLUME_LEVEL -ovc xvid -xvidencopts pass=2:chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:threads=$CPUS:bitrate=$BITRATE -vf pp=de,pullup,softskip,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o $OUTPUT_FILE.avi
fi

if [[ $MPEG4_TYPE = 6 ]] ; then
# actual one-pass conversion
mencoder $INPUT_FILE $AUDIO_TRACK $AUDIO_LANGUAGE $SUBTITLE_TRACK $SUBTITLE_LANGUAGE $SUBTITLE_TYPE -oac mp3lame -lameopts $AUDIO_BITRATE_TYPE:br=$AUDIO_BITRATE:vol=$AUDIO_VOLUME_LEVEL -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:threads=$CPUS:bitrate=$BITRATE -vf pp=de,pullup,softskip,crop=${CROP_VALUES},$SCALING $FRAME_RATE -o $OUTPUT_FILE.avi
fi



##################################################
# Close the custom quality option #17   #
##################################################

fi








######################################################################################################################################################
###### CLEANUP ###### CLEANUP ###### CLEANUP ###### CLEANUP ###### CLEANUP ###### CLEANUP ###### CLEANUP ###### CLEANUP ###### CLEANUP ###### CLEANUP
######################################################################################################################################################








if [ -f mplayer.tmp ];then
 rm mplayer.tmp
fi



if [ -f divx2pass.log ];then
 rm divx2pass.log
fi


######################################################################################################################################################
###### CONVERSION FINISHED ###### CONVERSION FINISHED ###### CONVERSION FINISHED ###### CONVERSION FINISHED ###### CONVERSION FINISHED ######
######################################################################################################################################################


##################################################
# Conversion finished notifications   #
##################################################

###### extra blank spaces
echo "
"

###### notifications
notify-send -t 7000 -i /usr/share/icons/gnome/32x32/status/info.png "Conversion Finished" ; espeak "Conversion Finished"

# extra blank spaces
echo "
"

read -sn 1 -p "Your conversion has finished, press any key to continue and close this terminal session..."

0 comentarios: