Vídeo em sincronia fora de sincronia usando mencoder

1

Eu converti um arquivo mkv (matroska) para avi usando o ffmpeg:

ffmpeg -i input.mkv -f mp4 -vcodec mpeg4 -sameq -r 29.97 -b 512kb -acodec ac3 -ab 128kb -vol 512  output.avi

O arquivo de saída é reproduzido corretamente usando o mplayer. Depois disso, usei o mencoder para inserir legendas:

mencoder output.avi -o new.avi -oac pcm -ovc lavc -subfont-text-scale 3 -sub subtitle.srt

Depois de reproduzir o vídeo "new.avi", o vídeo e o áudio estão fora de sincronia. Quais opções posso colocar no mencoder para sincronizar o A / V?

Eu também tentei a opção ffmpeg -newsubtitle , mas não consigo trabalhar. Quaisquer exemplos de uso de -newsubtitle seriam muito apreciados.

    
por nhinkle 26.09.2009 / 07:30

2 respostas

1

Como o derobert mencionou, você pode fazer tudo no mencoder, que usa as próprias bibliotecas do ffmpeg, e é muito mais poderoso, isso evitará a transcodificação que você está fazendo atualmente. A opção -audio-delay no mencoder define um offset para o áudio relativo ao vídeo, se a diferença de offset for absoluta. Você também pode tentar diferentes configurações de auto-sincronização (o valor padrão é 0, até 30 é mencionado no manual).

    
por 29.01.2010 / 00:10
1

Se você realmente não precisa do AVI, tente usar o mkvmerge da suíte MkvToolnix para fazer isso (em vez de mencoder ). Os MKVs podem conter faixas de legenda "suaves", o que significa que você não precisa recodificar o fluxo de vídeo para incluí-las. (Isso também significa que os jogadores podem desativar as faixas de legenda durante a reprodução, se desejado.)

Adicionar um arquivo SRT a um MKV é tão simples quanto

$ mkvmerge -o with-subtitles.mkv without-subtitles.mkv mymovie.srt

or to specify a language for the subtitle track:
$ mkvmerge -o with-lang-codes.mkv without-lang-codes.mkv --language 0:eng english.srt --default-track 0

(adaptado da seção de exemplos do mkvmerge manpage vinculado acima).

    
por 08.06.2010 / 10:41