[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [solução] Autoração DVD



Eis o script, nele voce pode converter um .avi ou todos que estiverem
no mesmo diretorio, para converter todos voce vai até o diretorio onde
há os arquivos .avi e .srt (com o mesmo nome do avi) e executa-o e ele
converterá todos que encontrar pelo caminho para dvix com a legenda
embutida. Só um aviso, ele também reformata a resolução para que possa
ser exibido no dvd de mesa, portanto se seus videos forem HD e voce só
assite no computador então reedite o script, ele é autoexplicativo e
voce saberá onde mudar na resolução. Outra coisa importante tem uma
opção -dvd que se usada vai converter para mpeg, eu coloquei isso para
depois compilar os meus próprios dvds, mas desisti de usa-la porque
dvix é bem mais economico e assisto no dvd de mesa do mesmo jeito.

<--------------- INICIO ----------------->
#!/bin/bash
echo "conversor e mesclador de legendas."
echo "use [-dvd] para converter para mpeg2 (compativel com dvds)"
echo "ou -avi(padrao assumido) para continuar a usar o formato avi"
echo "se houver .srt de mesmo nome entao a legenda será mixada ao video"
echo "-"
arquivo_mascara=$1
if [ "$arquivo_mascara" == "" ] ; then
 arquivo_mascara="*.avi"
 echo -n "Deseja processar todos arquivos .avi deste diretorio ? (sim/nao) =>"
 read resposta
 if [ "$resposta" != "sim" ] ; then
   echo "Operacao cancelada !"
   exit 1;
 fi
fi

video_aspect="16/9"
video_exibir_cmd="N"  # S=Apenas exibe o comando a ser executado, mas
nao executa
#video_format="dvd"
video_format="avi"
if [ "$2" == "-dvd" ] ; then
 video_format="dvd"
 video_res="720:480"
else
 # 624:352,720:480
  video_format="avi"
 video_res="624:352"
fi

if [ "$video_format" == "dvd" ] ; then
 echo "convertendo para o formato $video_format"
 EXEC_CMD_PART1="mencoder -oac lavc -ovc lavc -of mpeg \
            -mpegopts format=dvd -vf scale=$video_res,harddup \
            -srate 48000 -af lavcresample=48000 \
            -lavcopts
threads=2:vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:abitrate=224:aspect=$video_aspect
\
            -ofps 25"
 arquivo_out_ext="mpg"
else
 echo "convertendo para o formato $video_format"
 # dvix=msmpeg4(toca no dvd)
 # msmpeg4v2 (mpeg4)
 # xvid
 #dvix=msmpeg4(toca no dvd)
 EXEC_CMD_PART1="mencoder -oac mp3lame -lameopts cbr:br=64:vol=0 -ovc
lavc -lavcopts vcodec=msmpeg4:vbitrate=5000 -vf
lavcdeint,scale=$video_res,harddup "
 # xvid
 #EXEC_CMD_PART1="mencoder -oac mp3lame -lameopts abr:br=92:vol=0
-ovc xvid -xvidencopts pass=2:bitrate=5000 -vf
lavcdeint,scale=$video_res,harddup "

 arquivo_out_ext="avi"
fi

lista_arquivos=` find $arquivo_mascara `
#lista_arquivos=` ls -1 $arquivo_mascara `
#lista_arquivos=` ls -1 *.mpg `
for arquivo_in in $lista_arquivos ;
do
 arquivo_ext=${arquivo_in##*.}
 arquivo_basename=`basename $arquivo_in .$arquivo_ext`
 arquivo_out=`echo $arquivo_basename-pt_br.$arquivo_out_ext|tr
'[:upper:]' '[:lower:]'`
 arquivo_legenda="$arquivo_basename.srt"
 echo "Processando arquivo $arquivo_in..."

 EXEC_CMD_PART2=" "
 echo ".  arquivo ext=$arquivo_ext"
 echo ".  arquivo base=$arquivo_basename"
 echo ".  arquivo legenda=$arquivo_legenda"
 if ! [ -f "$arquivo_legenda" ] ; then
   echo "Nao Possui arquivo de legenda : $arquivo_legenda"
 else
   # parte 2 é responsavel pela aplicacao da legenda
   # cor original = FFFF0000
   # cor trocada #FCC900
   #EXEC_CMD_PART2=" -subpos 95 -subcp latin1 -sub $arquivo_legenda
-subfont-autoscale 2 \
   #             -subalign 2 -ass -ass-color FCC900 -ass-font-scale 1.2  \
   #             -ass-force-style FontName=Arial,Default.Bold=1
-ass-use-margins \
   #             -ass-bottom-margin 80"

   # OK :EXEC_CMD_PART2=" -subpos 95 -subcp latin1 -sub
$arquivo_legenda -subfont-autoscale 3"
   EXEC_CMD_PART2=" -subpos 95 -subcp iso-8859-15 -sub
$arquivo_legenda -subfont-autoscale 3 -ass-force-style
FontName=/usr/X11R6/lib/X11/fonts/truetype/arial.ttf,Default.Bold=1
-subpos 95 -subfont-osd-scale 6 -subfont-text-scale 4 -subfont-blur 2
"
 fi

 EXEC_CMD_PART3=" -o $arquivo_out $arquivo_in "
 EXEC_CMD="$EXEC_CMD_PART1 $EXEC_CMD_PART2 $EXEC_CMD_PART3"

 if [ "$video_exibir_cmd" = "S" ] ; then
   echo "Execute na linha de comando :"
   echo $EXEC_CMD
 else
   $EXEC_CMD
 fi

done

<--------------- FIM ----------------->
2008/3/3, Laura <laura.ssb@gmail.com>:
> Em 03/03/08, hamacker<sirhamacker@gmail.com> escreveu:
>
> > Eu tenho um script dedicado a embutir a legenda no filme.
>  >  Ele usa o mencoder, e as acentuações saem perfeitas.
>  >  A única coisa que ficou faltando é usar legendas amarelas.
>  >
>  >  Quando chegar em casa eu envio para voce.
>
>
>
> Muito obrigada, Hamacker.
>


Reply to: