2013年1月22日 星期二

DVD 字幕擷取

在 Linux 下從 DVD 裡擷取字幕真不是件容易的事。擷取的方法不只一種,但是抓出來的東西真的能用的卻不多。像是 mencoder、Avidemux 它們雖然可以抽出 idx/sub 字幕檔,但是仔細校對以後發現它的時間軸會偏掉(個人猜測是 VFR 的緣故)。

個人在嘗試許多方法以後找到一個比較能接受的解:用 transcode 解 sub 字幕檔。這個工具解出來的 sub 字幕雖然時間軸稍微偏個幾毫秒,不過只要平移一下就能解決。

詳細方法如下:

工具:
  1. mplayer
  2. transcode
  3. subtitleripper
  4. Aegisub
步驟:
  1. 先用之前文章提到的方法解出目標 .vob 檔案
  2. 用 transcode 提供的工具解出 .vob 檔中的 .sub 字幕
    $ tccat -i target.vob | tcextract -x ps1 -t vob -a 0x20 > target.sub
    其中 0x20 是語言碼。0x20 是中文,0x22 是英文。
  3. 用 subtitleripper 提供的 subtitle2pgm 產生 .pgm 圖檔和 .srtx 字幕時間軸
    $ subtitle2pgm -o output_prefix -c 0,255,0,0 < target.sub
這樣會產生許多字幕圖檔(黑底白字)和我們需要的 .srtx 範本

  • 以 Aegisub 載入 .srtx 字幕調整時間軸並修改翻譯