使用 mencoder 时音频视频不同步

使用 mencoder 时音频视频不同步

我使用 ffmpeg 将 mkv(matroska)文件转换为 avi:

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

使用 mplayer 可以很好地播放输出文件。之后,我使用 mencoder 插入字幕:

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

播放视频“new.avi”后,视频和音频不同步。我可以将哪些选项放入 mencoder 中来同步 A/V?

我也尝试过这个ffmpeg -newsubtitle选项,但无法正常工作。如能提供任何使用示例,-newsubtitle我将不胜感激。

答案1

正如 derobert 提到的,您可以在 mencoder 中完成整个操作,它使用 ffmpeg 库本身,功能更强大,这将避免您当前正在进行的转码。如果偏移差是绝对的,mencoder 中的 -audio-delay 选项会设置音频相对于视频的偏移量。您还可以尝试不同的 -autosync 设置(默认值为 0,手册中提到最多 30)。

答案2

如果你真的不需要 AVI,你可以尝试使用合并来自MkvToolnix 套件这样做(而不是门编码器)。MKV 可以包含“软”字幕轨道,这意味着您不必重新编码视频流即可包含它们。(这也意味着播放器可以根据需要在播放期间禁用字幕轨道。)

将 SRT 文件添加到 MKV 非常简单

$ 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

(改编自合并手册页链接见上文)。

相关内容