com as bibliotecas adicionais xvid e libmp3lame, mas para encode do xvid eu estou usando lavc. Para audio estou usando mp3lame.Antes de postar o script, vale lembrar que e minha primeira aventura de script shell para automatizar alguma tarefa minha, entao o codigo pode nao ser o melhor possivel. Dicas sao muito bem vindas!Abaixo o script:#!/bin/bashfunction usage { echo "uso: video-encode -v video -l legenda -ab audio-bitrate -vb video-bitrate [-vol volume] [-sim] -o arqiuvo-output"}function error_exit { echo "$1" 1>&2 exit 1}while [ "$1" != "" ]; do case $1 in -v ) shift video=$1 ;; -l ) shift legenda=$1 ;; -vb ) shift vb=$1 ;; -ab ) shift ab=$1 ;; -o ) shift output=$1 ;; -vol ) shift vol=":vol=$1" ;; -sim ) sim=true ;; * ) usage error_exit "Parametro nao reconhecido: $1" ;; esac shiftdone# Verificando se o arquivo de video e validotest -n "$video" -a -f "$video" || error_exit "Arquivo invalido: $video"# Verificando se o arquivo de legenda (se informado) e validotest -z "$legenda" -o -f "$legenda" || error_exit "Legenda invalida: $legenda"# Verificando se o arquivo de legenda (se informado) esta no format utf-8test -f "$legenda" -a $(file -bi "$legenda" | sed 's/\(.*\)charset=//') == "utf-8" || error_exit "A legenda nao esta no formato utf-8: $legenda"# Tenta criar o arquivo de saidatouch "$output" > /dev/null 2>&1 || error_exit "Erro ao criar o arquivo de saida: $output"echoecho "******************************************************"echo "Ambiente"echo "video: $video"echo "legenda: $legenda"echo "vbitrate: $vb"echo "abitrate: $ab"echo "******************************************************"echofunction echo_exec { echo $1 echo $2 if [ -z $sim ]; then eval $2 || error_exit "Operacao cancelada" fi}cmd="mencoder \"$video\" -sub \"$legenda\" -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -ffourcc XVID -o /dev/null"echo_exec "Encoding 2-pass - parte 1" "$cmd" cmd="mencoder \"$video\" -sub \"$legenda\" -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=$vb -oac mp3lame -lameopts abr:br=$ab$vol -ffourcc XVID -o \"$output\" -utf8"echo_exec "Encoding 2-pass - parte 2" "$cmd"Explicando em termos gerais, o script aceita os seguintes parametros de linha de comando:-v arquivo de video origem-l arquivo de legendas-vb bitrate do video-ab bitrate do audio-o arquivo de output-vol volume do audio - opcional (para aplicar ganho - pode distorcer)-sim modo simulacao (na verdade so exibe os comandos na tela, sem executar nada)Estou usando o metodo 2pass do mencoder porque achei que tive videos de melhor performance assim.Alguns pontos a melhorar:O mencoder esta sempre usando -utf8, por isso precisa do arquivo de legendas em formato utf-8. Vou tentar criar uma funcao para converter automaticamente o arquivo para utf-8 caso nao seja - atualmente o programa retorna um erro e nao prossegue.Antes de rodar o programa e preciso saber de antemao o bitrate de audio e video que serao usados. Vou tentar identificar no arquivo de origem e dar suporte ao usuario entrar com as informacoes atraves de prompt.Tornar a selecao da legenda opcional. Embora era minha intencao, ainda nao esta funcionando.Acabei de executar o script e na minha maquina esta funcionando (bem, na nossa maquina sempre funciona, ne...), entao espero que ajude outras pessoas da mesma forma que me ajuda aqui.Grande abraco a todos e ate a proxima.