Out of sync audio video using mencoder

6,772

Solution 1

As derobert mentioned you can do the whole thing in mencoder, which uses the ffmpeg libraries itself, and is much more powerful, this will avoid the transcoding that you are currently doing. The -audio-delay option in mencoder sets an offset for the audio relative to the video, if the offset difference is absolute. You could also try different -autosync settings (the default value is 0, up to 30 is mentioned in the manual).

Solution 2

If you don't really need the AVI, you might try using mkvmerge from the MkvToolnix suite to do this (instead of mencoder). MKVs can contain "soft" subtitle tracks, which means you don't have to re-encode the video stream to include them. (This also means that players can disable the subtitle tracks during playback if desired.)

Adding an SRT file into an MKV is as simple as

$ 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

(adapted from the Examples section of the mkvmerge manpage linked above).

Share:
6,772

Related videos on Youtube

nhinkle
Author by

nhinkle

Updated on September 17, 2022

Comments

  • nhinkle
    nhinkle over 1 year

    I converted an mkv (matroska) file to avi using ffmpeg:

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

    The output file plays fine using mplayer. After that, I used mencoder to insert subtitles:

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

    After I play back the video "new.avi", the video and audio is out of sync. What options can I put into mencoder to sync the A/V?

    I have also tried the ffmpeg -newsubtitle option but can't get it work. Any examples of usage of -newsubtitle would be greatly appreciated.

    • derobert
      derobert over 14 years
      I suggest looking at (a) doing the entire encode with mencoder, there is no need for ffmpeg here; (b) -mc 0, -noskip, and -vf harddup.
    • quack quixote
      quack quixote over 14 years
      did you play it back after conversion, but before subtitle insertion? is it in sync then?