Uma legenda no formato .srt, pode ser inserida em um vídeo com diversos programas/ferramentas. Vou mostrar que mencoder é uma das opções mais simples e rápida para isso.
O mencoder é instalado junto com o pacote do Mplayer. Mais detalhes de como instalar, visite: Mplayer: Projeto baseado no FFmpeg
Antes de adicionar a legenda ao vídeo, verifique se existe o arquivo subfont.ttf na pasta do mplayer. Sem esse arquivo de fonte, o mencoder não consegue “escrever” no vídeo.
Criando o subfont.ttf
No windows, basta copiar uma font .ttf, colar na pasta do Mplayer e renomear para subfont.ttf
No linux, procure pelas fontes .ttf com o comando: locate ttf | grep ttf\$
Depois copie a fonte para o diretório local do mplayer. No meu caso: (Utilizei a fonte VERA)
cp /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf ~/.mplayer/subfont.ttf
Testando a legenda:
Antes de inserir a legenda, podemos e devemos testa-la. Para isso rode o comando:
mplayer -sub legenda.srt video_original.avi
Assim, você pode ver mais ou menos como a legenda vai ficar, em relação a fonte escolhida.
Inserindo a legenda:
Comando:
mencoder video_original.avi -sub legenda.srt -subpos 95 -subfont-text-scale 3 -subcp enca:gr:iso-8859-1 -vf expand=640:384 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800:vhq -oac copy -o video_com_legenda.avi
Onde:
video_original.avi= Vídeo de entrada
legenda.srt= Legenda a ser inserida
video_com_legenda.avi= Vídeo de Saída
Parâmetros:
-subpos= Especifica em que % da tela a legenda irá aparecer (A partir do topo)
-subfont-text-scale= Especifica o tamanho da legenda no vídeo
-subcp= Especifica a codificação do arquivo de legenda
-vf= Especifica o tamanho do vídeo. Neste caso, o vídeo original era 640 x 272, adicionei mais 112px na altura (384px) utilizando expand,ou seja, o vídeo vai ficar com uma tarja preta de 56px em cima e em baixo.
-ovc= Especifica o codec de vídeo. Neste caso lavc.
-lavcopts = Opções do lavc. Especifica o nome do codec, bitrate,…, do vídeo.
-oac= Especifica o áudio. O valor copy, copia o áudio exatamente como o original.
-o= Especifica o arquivo de saída.
OBS: O comando do mencoder foi testado e executado no Linux. Para rodar o comando em windows, veja aqui.