Legendando videos da Internet com o Mencoder

Sempre que se pega um vídeo com áudio em linguagem estrangeira na internet costuma-se pegar a legenda para esse vídeo, que fica separada do vídeo original, se o vídeo ficar restrito ao computador nem há problema nisso, mas para o caso de se querer passar o vídeo para dvd ou vcd surge um problema: – Como juntar o vídeo com a legenda num único arquivo? A resposta para isso: – “mencoder” – o canivete suiço das aplicações de áudio e vídeo que faz parte do pacote do mplayer.


Instalando as fontes usados pelo mencoder/mplayer

Pegue a fonte Arial – Western (ISO 8859-1) (4 sizes) e salve em seu home:

http://www.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-1.tar.bz2

abra um terminal e usando seu usuário execute os comandos:

$ mkdir .mplayer
$ mkdir .mplayer/font

descompacte a fonte que vc pegou :
$ tar -xvjf font-arial-iso-8859-1.tar.bz2

Entre na pasta descompactada da fonte e de um comando ls para listar o conteúdo da pasta :

$ ls

vc terá essa lista :

[megatron@cybertron font-arial-iso-8859-1]$ ls
font-arial-14-iso-8859-1/ font-arial-24-iso-8859-1/ README-arial-iso-8859-1
font-arial-18-iso-8859-1/ font-arial-28-iso-8859-1/

observe que há um arquivo readme e 4 pastas , cada pasta corresponde a um tamanho de fonte :
fonte 14 —> font-arial-14-iso-8859-1
fonte 18 —> font-arial-18-iso-8859-1
fonte 24 —> font-arial-24-iso-8859-1
fonte 28 —> font-arial-28-iso-8859-1

para usar uma dessas fontes vc entra na pasta da fonte :
$ cd font-arial-14-iso-8859-1

e copia o conteúdo dela para a pasta .mplayer/font :

$ cp * ~/.mplayer/font/

No exemplo acima a fonte 14 foi colocada na pasta de fontes do mplayer, para outro tamanho de fonte , basta mudar a pasta da fonte que se quer usar , a mudança do tamanho de fonte é necessária conforme a resolução do vídeo a ser legendado , vídeos de resolução baixa , fontes pequenas , resolução alta , fonte grande .Nos exemplos abaixo o tamanho de fonte é indicado para facilitar o trabalho.

legendando videos

vídeos em formato 16:9 (tipo cinema) redimensionados no video final , mas mantendo o aspecto 16:9


vídeo original + legenda = vcd
fonte da legenda tamanho 14
mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf scale=352:240,harddup,lavcdeint,scale,expand=:-42:::1 -zoom -xy 352 -srate 44100 -af lavcresample=44100 -lavcopts vcodec=mpeg1video:keyint=18:vrc_buf_size=2000:vrc_minrate=1152:vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 -o video_vcd_ntsc.mpg


vídeo original + legenda = dvd
fonte da legenda tamanho 24
mencoder video_original.xxx -sub legenda.xxx -subpos 85 -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf pp=lb,scale=720:480,harddup,lavcdeint,scale,expand=:-42:::1 -zoom -xy 720 -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=10000:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:abitrate=192 -ofps 30000/1001 -o video_dvd_ntsc.mpg


fonte da legenda tamanho 14 , resolução do video final 352×240
mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac mp3lame -lameopts cbr:br=64 -ovc lavc -lavcopts vcodec=msmpeg4:vbitrate=800 -vf scale=352:240,harddup,lavcdeint,scale,expand=:-42:::1 -zoom -xy 352 -o video.avi


mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac mp3lame -lameopts cbr:br=64 -ovc xvid -xvidencopts bitrate=800 -vf scale=352:240,harddup,lavcdeint,scale,expand=:-42:::1 -zoom -xy 352 -o video.avi


vídeos em qualquer resolução sem redimensionamento do vídeo final


vídeo original + legenda = divx
tamanho da fonte conforme a resolução do vídeo , sem alterar a resolução original , bitrate do vídeo de acordo com o bitrate do vídeo original
para saber o bitrate do vídeo original execute : mplayer video_original.xxx , feche o vídeo e veja a informação :
VIDEO: [XVID] 624×352 12bpp 23.976 fps 1013.4 kbps (123.7 kbyte/s)
nesse exemplo o bitrate do vídeo é 1013.4 kbps , coloque esse valor no sub comando vbitrate=xxx , ficaria assim : vbitrate=1013
mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac mp3lame -lameopts cbr:br=64 -ovc lavc -lavcopts vcodec=msmpeg4:vbitrate=xxx -o video.avi


vídeo original + legenda = xvid
tamanho da fonte conforme a resolução do vídeo , sem alterar a resolução original , bitrate do vídeo de acordo com o bitrate do vídeo original
para saber o bitrate do vídeo original execute : mplayer video_original.xxx , feche o vídeo e veja a informação :
VIDEO: [XVID] 624×352 12bpp 23.976 fps 1013.4 kbps (123.7 kbyte/s)
nesse exemplo o bitrate do vídeo é 1013.4 kbps , coloque esse valor no sub comando -xvidencopts bitrate=xxx , ficaria assim : -xvidencopts bitrate=1013
mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac mp3lame -lameopts cbr:br=64 -ovc xvid -xvidencopts bitrate=xxx -o video.avi


vídeos em qualquer resolução , redimensionados no vídeo final


fonte da legenda tamanho 14 , resolução do video final 352×240
mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac mp3lame -lameopts cbr:br=64 -ovc lavc -lavcopts vcodec=msmpeg4:vbitrate=800 -vf scale=352:240 -o video.avi


vídeo original + legenda = xvid
fonte da legenda tamanho 14 , resolução do video final 352×240
mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac mp3lame -lameopts cbr:br=64 -ovc xvid -xvidencopts bitrate=800 -vf scale=352:240 -o video.avi


mencoder video_original.xxx -sub legenda.xxx -subpos 78 -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts vcodec=mpeg1video:keyint=18:vrc_buf_size=2000:vrc_minrate=1152:vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 -o video_vcd_ntsc.mpg


vídeo original + legenda = dvd
fonte da legenda tamanho 24
mencoder video_original.xxx -sub legenda.xxx -subpos 85 -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf pp=lb,scale=720:480,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=10000:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:abitrate=192 -ofps 30000/1001 -o video_dvd_ntsc.mpg


obs.: quando estiver convertendo para vcd ou dvd e houver uma mensagem de erro desse tipo :

Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le…
Falha de segmentação
siguinifica que o sample rate do som (amostragem) , do vídeo original , já está no formato do dvd ou vcd
portanto essa sequencia de comando precisa ser removida :
caso de vcd —> -srate 44100 -af lavcresample=44100
caso de dvd —> -srate 48000 -af lavcresample=48000

obs.: sempre verifique o vídeo final com o comando mplayer video.xxx , assim você poderá corrigir algum parâmetro do comando sem perder tempo de converter o vídeo inteiro.

obs.: no caso de se usar o comando que não muda a resolução do vídeo legendado
o sub comando que posiciona a legenda pode exigir ajustes , portanto mude o valor do -subpos 78
para um valor que fique de acordo com o que vc quer , e teste antes de codificar o vídeo inteiro
a faixa de valores do -subpos vai de 0 a 100 . E no caso de se usar o vídeo exclusivamente no computador , o subcomando -subpos pode ser omitido.

Fonte: http://www.linuxnarede.com.br/artigos/fullnews.php?id=43