Essa dúvida é muito frequente aqui no fórum, e há vários tópicos com diversas respostas diferentes. Contudo eu achei esse tutorial que agrupa várias dicas e de forma simples e resumida.
Como sincronizar legendas no MplayerA situação é simples e rotineira: Você possui um filme e uma legenda para esse filme. Mas, por algum motivo a legenda está dessincronizada com o vídeo. Essa é uma constante, acontece o tempo todo, e incomoda muito.
Já vi muitas pessoas baixando legendas novas, programas para alteração de arquivos de legenda e até baixando outra versão do filme.
Há atitudes mais inteligentes que podem ser tomadas. No caso, acredito que o caminho mais fácil é comandar o reprodutor de vídeo para sincronizar a legenda. Como os reprodutores não são inteligentes o suficiente para fazer isso automaticamente, o jeito é sincronizar na mão mesmo.
Link para o rascunho original
O reprodutor que eu utilizo é o mplayer, então a dica é referente a ele. Há três modos de sincronizar as legendas no Mplayer:
1.Através do interface gráfica (gmplayer) - a pior: (a) com o gmplayer aberto, clique com o menu direito e escolha a opção "preferences"; (b) na aba "Subtitles & OSD" ("legendas"), modifique as opções "Delay" ou "FPS".
O maior problema de usar a interface gráfico do mplayer para definir o delay é a limitação imposta de no máximo 10 segundos, negativos ou positivos.
2. Através da linha de comando - mais útil: abra o mplayer usando os parâmetros "-subdelay" e/ou "-subfps". O parâmetro "-subdelay" é definido em segundos.
A sintaxe do comando:
$ mplayer -subdelay -subfps
3. Redefinir o delay da legenda durante a execução do vídeo: durante a execução do vídeo as teclas "x" e "z" alteram o delay em 0.1 segundos para + ou para -. As teclas "r" e "t" adianta a próxima fala ou volta a fala anterior.
Obs.1: O parâmetro "-subdelay" aceita quantidades negativas e/ou fracionadas (ex.: "$ mplayer -subdelay -1.5 "). O parâmetro "-subfps" aceita números fracionados também.
Obs.2: Use o parâmetro "-subfps" se perceber que a legenda dessincroniza (atrasa ou adianta) durante a execução do vídeo, isso acontece porque o vídeo ou a legenda está "correndo" mais rápido do que o outro. Infelizmente, o valor do fps da legenda normalmente deve ser definido por tentativa e erro. Se a legenda estiver dessincronizando, em uma situação ideal, vale mais a pena baixar uma nova.
Obs.3: Nenhuma dessas soluções arruma a legenda, apenas dão um "jeitinho" para a execução atual. Para uma solução definitiva, ou baixe uma nova legenda, ou arrume a legenda através de um outro programa. Há ainda a opção de criar um shell script para executar o comando com os parâmetros definidos corretamente.
Para mais detalhes sobre os comandos e parâmetros do mplayer:
$ man mplayer
--------------------------
Fonte:
http://www.bestlinux.com.br/index.php?option=com_content&task=view&id=2566&Itemid=127