轉碼後字幕不同步

我会把我下载的所有文件转码成更低的码率,并从 MKV 转成 MP4。我已经设置好,字幕会从 MKV 中提取出来,并保存为外部 SRT 文件。

然而,我发现所有 SRT 文件与 MP4 都不同步,而在原始 MKV 文件中同步是正常的。

我想用字幕偏移功能来修正,但奇怪的是,每个文件的延迟时间都不一样,虽然字幕总是比音频晚出现。有的文件延迟 +2 秒,有的 +3 或 +4 秒。

我使用的是 2.5.4 Beta,我的配置如下:

[MP4 Transcode All]
Description=Medium MP4 (H.264/AAC) conversion.
order=handbrake
handbrake-general=–loose-anamorphic --verbose=2 -f mp4 -O
handbrake-video=–start-at duration:0 -e x264 -b 950 -x cabac=0:ref=2:bframes=0:weightp=0:8x8dct=0:trellis=0:subq=6:me=hex:b-adapt=0:threads=auto
handbrake-audio=-E faac -R auto -B 64 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E faac -R auto -B 64 -D 0 -a 1,2,3,4,5
handbrake-ext=.mp4
handbrake-audiodelay=skip
PreConversionCommercialRemover=true
AutoDeinterlace=false
CustomCommandPath=C:\Windows\System32\cmd.exe
CustomCommandParameters=“/c “”“C:\Program Files\MCEBuddy2x\mp4box\mp4box.exe” “%convertedfile%” -lang 1=eng -lang 2=eng”
CustomCommandHangPeriod=100
CustomCommandCritical=true
CustomCommandUISession=false
CustomCommandShowWindow=false

更深入地观察这个问题后,我发现文件的运行时间不同。转码后的 MP4 比原始 MKV 短了 2 到 7 秒,截断发生在转换的开头。

当我用 Xmedia-Recode 手动转码时,时长一致,字幕也同步。

这是某些录制内容常见的问题,具体取决于录制时的 GOP 结构形成。以下主题将更好地解释原因及解决方案:

謝啦!我最後自己亂試,發現勾選「Skip Remuxing Files」就恢復正常了。

附帶一提,我並沒有移除廣告或做任何剪輯,轉檔都是純轉換——MKV 轉 MP4、x264 轉 x264、AC3 轉 AAC。

而且,字幕偏移量每個檔案都不一樣,根本無法設定一個統一的補正值。

我知道这个问题已经解决了,但我遇到过类似的问题,是通过使用 ffmpeg 而不是 handbrake 解决的。