#!/bin/bash
echo "conversor e mesclador de legendas."
echo "se houver .srt de mesmo nome entao a legenda será mixada ao video"
echo "-"
ICONE="totem"
ZENITY="/usr/bin/zenity"
if ! [ -f "$ZENITY" ] && [ "$INTERFACE_GRAFICA" = "S" ]; then
  echo "O programa [zenity] não foi encontrado no seu sistema. Instale-o."
  exit 2;
fi

#
DATA_INICIO=`date +%d-%m-%Y+%H:%M`

# resolução atual, onde Y=larg, X=comprimento (1400x900, 1024x768,1280x1024,1280x900,...)
RESY=`/usr/bin/xrandr | grep '*'|cut -d"x" -f1|tr -d " "`
RESX=`/usr/bin/xrandr | grep '*'|cut -d"x" -f2|cut -d " " -f1`

# Tamanho/icone para a janela do zenity
ZEN_WIDTH=$((RESY-100))
[ "$ZEN_WIDTH" -gt 640 ] && ZEN_WIDTH=640
ZEN_HEIGHT=$((RESX-150))
[ "$ZEN_HEIGHT" -gt 800 ] && ZEN_WIDTH=800
ZEN_SIZE=" --width=$ZEN_WIDTH --height=$ZEN_HEIGHT --window-icon=$ICONE "
ZEN_SMALL_SIZE=" --width=600 --height=400 --window-icon=$ICONE"

# mencoder + audio
EXEC_CMD_PART0=""
# video
EXEC_CMD_PART1=""
# legenda
EXEC_CMD_PART2=""

unset fontes
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSerif-Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSans-BoldItalic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSerif-BoldItalic.ttf" )
if [ -f /usr/share/fonts/truetype/msttcorefonts/arialbd.ttf ] ; then
  fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSans-Regular.ttf" )
else
  fontes=( "${fontes[@]}" "true|/usr/share/fonts/truetype/ttf-liberation/LiberationSans-Regular.ttf" )
fi
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSerif-Regular.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationMono-BoldItalic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSans-Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationMono-Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationMono-Regular.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSerif-Bold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationMono-Bold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-liberation/LiberationSans-Bold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Arial_Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/arial.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Verdana.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/ariali.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/verdanaz.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/trebucit.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/arialbi.ttf" )
fontes=( "${fontes[@]}" "true|/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/verdanab.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Arial.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/comicbd.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/courbd.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Courier_New_Bold_Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/cour.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Verdana_Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Courier_New_Bold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Georgia_Bold_Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Arial_Bold_Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/andalemo.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Times_New_Roman.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Trebuchet_MS_Bold_Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Verdana_Bold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Andale_Mono.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/verdana.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Verdana_Bold_Italic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/verdanai.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/Impact.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/ariblk.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/msttcorefonts/couri.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoIt.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraIt.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMono.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraSeBd.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraSe.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraBd.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraBI.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoBI.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMoBd.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeMonoBoldOblique.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSerifBoldItalic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSerif.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSansBold.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSerifItalic.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSans.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf" )
fontes=( "${fontes[@]}" "false|/usr/share/fonts/truetype/freefont/FreeMono.ttf" )

# criando as opcoes para a seleção de fontes
STARTING=0
FINISH=${#fontes[*]} 
tempmenu=""
tempfile=`mktemp`
unset linha
for linha in "${fontes[@]}" ; do
    STARTING=$((STARTING+1))
    acrescentar_no_menu="N"
    mainmenu_bool=`echo $linha|cut -d"|" -f1`
    mainmenu_fonte=`echo $linha|cut -d"|" -f2`
    # verifica se esta opcao ja nao executada, se foi
    # entao nao acrescentar no menu
    if [ -f "$mainmenu_fonte" ] ; then
      acrescentar_no_menu="S"
    fi
    [ "${acrescentar_no_menu}" = "S" ] && tempmenu="${tempmenu} $mainmenu_bool $mainmenu_fonte"
    echo $tempmenu >$tempfile
    echo $((STARTING*100/$FINISH))
done|zenity --progress --auto-close --title="Aguarde..." --text "Criando dinamicamente uma lista de fontes recomendadas para as legendas..."

mainmenu="`cat $tempfile`"
[ -f $tempfile ] && rm -f $tempfile

FONT_FILE=`zenity $ZEN_SIZE \
    --list --radiolist --title "Conversão de videos" \
    --text "Se for necessário aplicar a legenda, qual fonte devo usar ?" \
    --column "#" --column "Use a fonte :" \
    $mainmenu`;
ERRO="$?"
if  [ "$?" -ne "$ERRO" ] ; then
   zenity --title="Ops !" --info --text "Operação cancelada pelo usuário !"
  exit 2;
fi

# tamanho autoescalonado para a fonte
ASK_FONT_SIZE=`zenity $ZEN_SMALL_SIZE \
        --list --radiolist \
        --title "Conversão de vídeos" \
        --text "Se houver aplicação de legendas, qual será o tamanho da fonte ?\nUm tamanho fixo não é recomendado porque você poderá assistir o vídeo\nem diferentes tamanhos de tela, assim o ideal é autoescalar a fonte proporcionalmente\nao tamanho do vídeo, assim não importa o tamanho da TV ou Monitor,\no tamanho da fonte será sempre proporcional as caracteristicas largura/altura do vídeo.\nInfelizmente a largura/altura pode variar de um vídeo para o outro,\nassim nem sempre a mesma autoescalonagem é a ideal para todos os casos.\nNo geral, vídeos em proporção 4:3 a autoescolanagem fica melhor usando a altura do vídeo,\nVídeos 16:9 a fonte ficará melhor usando a largura do vídeo resultando numa fonte de tamanho médio\nVídeos 16:9 com autoescalonagem na diagonal deixa a fonte com o tamanho máximo possivel.\nMas muitos outros preferem usar autoescalonagem em 1 porque é similar as legendas de DVD.\n\nQual a autoescalonagem ideal da fonte que gostaria de aplicar ?" \
        --column " " \
        --column "Tamanhos disponíveis para autoescalonagem da fonte :" \
        true "1-Proporcional a altura do vídeo" \
        false  "2-Proporcional a largura do vídeo" \
        false "3-Proporcional a diagonal do vídeo"`;
ERRO="$?"
if  [ "$?" -ne "$ERRO" ] ; then
   zenity --title="Ops !" --info --text "Operação cancelada pelo operador !"
  exit 2;
fi
[ "$ASK_FONT_SIZE" == "1-Proporcional a altura do vídeo" ] && FONT_SIZE="1"
[ "$ASK_FONT_SIZE" == "2-Proporcional a largura do vídeo" ] && FONT_SIZE="2"
[ "$ASK_FONT_SIZE" == "3-Proporcional a diagonal do vídeo" ] && FONT_SIZE="3"

# formato de tela
VIDEO_ASPECT="16:9"
ASK_VIDEO_ASPECT=`zenity $ZEN_SMALL_SIZE \
        --list --radiolist \
        --title "Formato de tela a ser utilizado" \
        --text "Qual o formato de tela ?" \
        --column " " \
        --column "Formatos disponiveis" \
        true "16:9 (624x352, Widescreen,...)" \
        false "4:3 (720x480, Fullscreen,...)"`;
ERRO="$?"
if  [ "$?" -ne "$ERRO" ] ; then
   zenity --title="Ops !" --info --text "Operação cancelada pelo usuário !"
  exit 2;
fi
if [ "$ASK_VIDEO_ASPECT" == "16:9 (624x352, Widescreen,...)" ] ; then
  VIDEO_ASPECT="16:9"
  VIDEO_RES="624:352"
fi
if [ "$ASK_VIDEO_ASPECT" == "4:3 (720x480, Fullscreen,...)" ] ; then
  VIDEO_ASPECT="4:3"
  VIDEO_RES="720:480"
fi

# formato encodando o audio
VIDEO_AUDIO="copy"  ## copy ou mp3
ASK_VIDEO_AUDIO=`zenity $ZEN_SMALL_SIZE \
        --list --radiolist \
        --title "Formato de audio" \
        --text "Qual o formato de audio ?" \
        --column " " \
        --column "Formatos disponiveis" \
        true "copy - não muda a origem do som" \
        false "mp3" \
        false "mp2"`;
ERRO="$?"
if  [ "$?" -ne "$ERRO" ] ; then
   zenity --title="Ops !" --info --text "Operação cancelada pelo usuário !"
  exit 2;
fi

if [ "$ASK_VIDEO_AUDIO" == "copy - não muda a origem do som" ] ; then
  VIDEO_AUDIO="copy"
  EXEC_CMD_PART0="mencoder -oac copy "
fi
if [ "$ASK_VIDEO_AUDIO" == "mp3" ] ; then
  VIDEO_AUDIO="mp3"
  EXEC_CMD_PART0="mencoder -oac mp3lame -lameopts q=5:vbr=2:abr=160:aq=5:ratio=50:mode=0:vol=8 "
fi
if [ "$ASK_VIDEO_AUDIO" == "mp2" ] ; then
  VIDEO_AUDIO="mp2"
  EXEC_CMD_PART0="mencoder -oac lavc "
fi

#
# Bitrate
#
#  A bitrate of 800 will give you near DVD quality when encoding hi-quality video like a DVD disc.
# VCD quality is around 400-500.
# Internet streaming quality is generally around 80-150.
# Mencoder's default bitrate is 687 kbits/s. 
BITRATE="687"
ASK_BITRATE=`zenity $ZEN_SMALL_SIZE \
        --list --radiolist \
        --title "Bitrate kbits/s" \
        --text "Escolhendo onde o video será exibido, \neu posso determinar o melhor bitrate para uso" \
        --column " " \
        --column "Onde o vídeo será exibido :" \
        true "DVD (800kbits/s)" \
        false "VCD (500kbits/s)" \
        false "Internet (150kbits/s)" \
        false "padrao do conversor (687kbits/s)"`;
ERRO="$?"
if  [ "$?" -ne "$ERRO" ] ; then
   zenity --title="Ops !" --info --text "Operação cancelada pelo usuário !"
  exit 2;
fi
[ "$ASK_BITRATE" == "DVD (800kbits/s)" ] && BITRATE="800"
[ "$ASK_BITRATE" == "VCD (500kbits/s)" ] && BITRATE="500"
[ "$ASK_BITRATE" == "Internet (150kbits/s)" ] && BITRATE="150"


# formato encodando o video (tambem pode determinar a extensao final)
VIDEO_FORMAT="xvid"  ## copy,xvid,x264 ou mp4
ASK_VIDEO_FORMAT=`zenity $ZEN_SMALL_SIZE \
        --list --radiolist \
        --title "Formato para codificar o video" \
        --text "Qual o formato para codificar o video ?" \
        --column " " \
        --column "Formatos disponiveis" \
        false "copy-apenas mantém o formato original de vídeo" \
        true "xvid-toca na maioria dos DVDs" \
        false "x264-toca somente em aparelhos especiais como PS3, PSP dentre outros" \
        false "mp4-Util para portateis, mas o formato msmpeg4v2 (mpeg4) NAO TOCA na maioria dos DVDs"`;
ERRO="$?"
if  [ "$?" -ne "$ERRO" ] ; then
   zenity --title="Ops !" --info --text "Operação cancelada pelo usuário !"
  exit 2;
fi

if [ "$ASK_VIDEO_FORMAT" == "copy-apenas mantém o formato original de vídeo" ] ; then
  echo "Estou reutilizando o formato de video que acompanha este arquivo"
  VIDEO_FORMAT="copy"
  EXEC_CMD_PART1=" -ovc raw "
  ARQUIVO_OUT_EXT="avi"
fi

if [ "$ASK_VIDEO_FORMAT" == "xvid-toca na maioria dos DVDs" ] ; then
  VIDEO_FORMAT="xvid"
  EXEC_CMD_PART1=" -ovc xvid -xvidencopts pass=2:bitrate=$BITRATE -vf lavcdeint,scale=$VIDEO_RES,harddup "
  ARQUIVO_OUT_EXT="avi"
fi

if [ "$ASK_VIDEO_FORMAT" == "x264-toca somente em aparelhos especiais como PS3, PSP dentre outros" ] ; then
  echo "O formato x624 toca somente em aparelhos especiais como PS3, PSP dentre outros"
  echo "Também requer que o mencoder/mplayer tenha sido compilado para usar x624"
  VIDEO_FORMAT="x264"
  EXEC_CMD_PART1=" -ovc x264 -x264encopts bitrate=$BITRATE:pass=2:level_idc=41:frameref=3:threads=2:mixed_refs:bframes=3:b_pyramid:brdo:subq=6:direct_pred=auto:partitions=p8x8,b8x8,i4x4,nopsnr,bime:weight_b:trellis=1:ssim -vc ffvc1 -vf scale=$VIDEO_RES,harddup  -ofps 24000/1001 "
  ARQUIVO_OUT_EXT="mp4"
fi

if [ "$ASK_VIDEO_FORMAT" == "mp4-Util para portateis, mas o formato msmpeg4v2 (mpeg4) NAO TOCA na maioria dos DVDs" ] ; then
  echo "O formato msmpeg4v2 (mpeg4) NAO TOCA na maioria dos DVDs"
  VIDEO_FORMAT="mp4"
  EXEC_CMD_PART1=" -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=5000 -vf lavcdeint,scale=$VIDEO_RES,harddup "
  ARQUIVO_OUT_EXT="mp4"
fi

# a linha abaixo se "S" apenas exibe o comando a ser executado,
# mas nao executa-o.
ASK_EXECUTE=`zenity $ZEN_SMALL_SIZE \
        --list --radiolist \
        --title "Qual a opção a ser realizada agora ?" \
        --text "Procedimento final" \
        --column " " \
        --column "Procedimento final" \
        true "Executar a conversão agora" \
        false "Apenas gerar o script para converter mais tarde"`;
ERRO="$?"
if  [ "$?" -ne "$ERRO" ] ; then
   zenity --title="Ops !" --info --text "Operação cancelada pelo usuário !"
  exit 2;
fi

if [ "$ASK_EXECUTE" == "Executar a conversão agora" ] ; then
  SOMENTE_EXIBIR_CMD="N"  
else
  SOMENTE_EXIBIR_CMD="S"  
fi
echo "convertendo para o formato $VIDEO_FORMAT"

#
# Daqui em diante voce nao pode alterar mais nada
# 

if [ "$EXEC_CMD_PART0" = "" ] || \
   [ "$EXEC_CMD_PART1" = "" ] ; then
  zenity --title="Ops !" --info --text "Variaveis nulas :\nEXEC_CMD_PART0=$EXEC_CMD_PART0\nEXEC_CMD_PART1=$EXEC_CMD_PART1"
  exit 3;
fi
SCRIPT_FILE="/tmp/converter_arquivos_$DATA_INICIO.sh"
[ -f "$SCRIPT_FILE" ] && rm -f "$SCRIPT_FILE"
echo "#!/bin/bash">$SCRIPT_FILE
echo "# $SCRIPT_FILE">>$SCRIPT_FILE
# traduz os itens e coloca-os em aspas para o correto processamento de
# nome de arquivos que contenham espacos no nome
ITEMS_SELECIONADOS=$(echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | awk 'BEGIN {FS = "\n" } { printf "\"%s\" ", $1 }' | sed -e s#\"\"##)
LISTA=`mktemp`
eval find $ITEMS_SELECIONADOS >$LISTA
while read ARQUIVO_AVI ; do
 #zenity --title="debug !" --info --text "$ARQUIVO_AVI"
  arquivo_ext=${ARQUIVO_AVI##*.}
  if [ "$arquivo_ext" = "avi" ] ; then
    arquivo_basename=`basename "$ARQUIVO_AVI" .$arquivo_ext`
    arquivo_basename_nospace=${arquivo_basename// /_}
    arquivo_pasta=`dirname "$ARQUIVO_AVI"`
    arquivo_out=`echo $arquivo_basename_nospace-pt_br.$ARQUIVO_OUT_EXT|tr '[:upper:]' '[:lower:]'`
    arquivo_out="$arquivo_pasta/$arquivo_out"
    arquivo_legenda="$arquivo_pasta/$arquivo_basename.srt"
    comentario1="### $ARQUIVO_AVI"
    EXEC_CMD_PART2=" "
    comentario2="#  arquivo ext=$arquivo_ext">>$SCRIPT_FILE
    comentario3="#  arquivo base=$arquivo_basename">>$SCRIPT_FILE
    comentario4="#  arquivo legenda=$arquivo_legenda">>$SCRIPT_FILE
    if ! [ -f "$arquivo_legenda" ] ; then
      comentario5="#    Nao Possui arquivo de legenda : $arquivo_legenda">>$SCRIPT_FILE
    else
      comentario5="# aplicando arquivo de legenda"
      EXEC_CMD_PART2=" -subpos 95 -subcp iso-8859-15 -sub \"$arquivo_legenda\" -subfont-autoscale $FONT_SIZE -font \"$FONT_FILE\" -ass -ffactor 1 -sub-fuzziness 0 -subfont-blur 2 -ass-color FCC900 "
    fi

    EXEC_CMD_PART3=" -o \"$arquivo_out\" \"$ARQUIVO_AVI\" "
    EXEC_CMD="$EXEC_CMD_PART0 $EXEC_CMD_PART1 $EXEC_CMD_PART2 $EXEC_CMD_PART3"
    cat >> $SCRIPT_FILE <<END
$comentario1
$comentario2
$comentario3
$comentario4
$comentario5
tempfile=\`mktemp\`
TIMESTART=\`date +%H:%M\`
$EXEC_CMD >\$tempfile&
MYPID=\$!
while ! [ -z \`ps -p \${MYPID} | grep \${MYPID}\` 2>/dev/null ] ; do
  perc_concluido=\`cat \$tempfile|grep "%"|tail -c 120|cut -d"(" -f2|cut -d "%" -f1\`
  echo \$perc_concluido
  sleep 1s
done |zenity --progress --auto-close --title="Convertendo video" --text "Convertendo de :\n\t$ARQUIVO_AVI\nPara:\n\t$arquivo_out"
TIMEFINISH=\`date +%H:%M\`
if ! [ -z \`ps -p \${MYPID} | grep \${MYPID}\` 2>/dev/null ] ; then
  kill \$MYPID
  zenity --notification --text "Conversao do video $ARQUIVO_AVI para $arquivo_out foi cancelada.[executado de \$TIMESTART ate \$TIMEFINISH]" &
else
  zenity --notification --text "Conversao do video $ARQUIVO_AVI para $arquivo_out foi concluída.[executado de \$TIMESTART ate \$TIMEFINISH]" &
fi
[ -f \"\$tempfile\" ] && rm -f \"\$tempfile\"
END
    if [ -f "$SCRIPT_FILE" ] ; then
      chmod a+x "$SCRIPT_FILE"
      chmod 777 "$SCRIPT_FILE"
    fi
  fi
done <$LISTA

# removendo o script no final
echo "[ -f \"$SCRIPT_FILE\" ] && rm -f \"$SCRIPT_FILE\"">>$SCRIPT_FILE

# Executando o batch
if [ "$SOMENTE_EXIBIR_CMD" = "S" ] ; then
      $ZENITY  --title="Os comandos a serem executados encontram-se em " --text-info --filename="$SCRIPT_FILE" &
else
  if [ -f "$SCRIPT_FILE" ] ; then
    chmod a+x "$SCRIPT_FILE"
    $SCRIPT_FILE&
  fi
fi

exit 0;

