簡短答案:MKVToolNix 可以提取儲存在 MKV 檔案內的字幕軌。它的 mkvextract 指令可以將 SRT 和 ASS 等文字軌,或 Blu-ray PGS 和 DVD VobSub 等影像軌,寫入獨立檔案。它不會執行 OCR。如果文字是繪製在影片畫格中——或你提取了影像軌後想要可編輯文字——就需要在 MKVToolNix 之後加入 OCR 步驟。GeekLink 的免費影像字幕轉換器目前接受 Blu-ray 的 .sup/PGS 檔案;DVD VobSub 的 .idx/.sub 檔案目前還不能直接輸入,需使用支援 VobSub 的 OCR 工具。

畫面中看得到字幕,卻沒有可用的字幕軌? GeekLink 可在本機讀取燒錄字幕,並在 Mac 或 Windows 匯出帶時間軸的 SRT。

免費試用 GeekLink

先確認你手上的字幕類型

不要一開始就猜指令。先確認字幕是以字幕串流存在,還是只有影片畫面中的像素。MKVToolNix 可以用 mkvmerge 檢查容器內容:

mkvmerge -i "episode.mkv"

你可能會看到類似以下的輸出:

Track ID 0: video (V_MPEG4/ISO/AVC)
Track ID 1: audio (A_AAC)
Track ID 2: subtitles (S_TEXT/UTF8)
Track ID 3: subtitles (S_HDMV/PGS)
字幕軌或結果代表的意義下一步
S_TEXT/UTF8文字字幕,通常是 SRTmkvextract 直接提取,或使用 GeekLink 的 Embedded Sub 功能
S_TEXT/ASSS_ASS帶樣式的 ASS/SSA 文字字幕以 ASS 格式提取以保留樣式,或讓 GeekLink 建立來源語言 SRT
S_HDMV/PGSBlu-ray 字幕影像提取 SUP 檔案,再使用 GeekLink 免費的 Blu-ray OCR 轉換器
S_VOBSUBDVD 字幕影像提取 IDX/SUB 成對檔案,再使用支援 VobSub 的 OCR 工具
沒有字幕軌不存在字幕串流;看得到的文字可能已燒錄進影片對影片畫格使用 OCR

這個區分能解釋大多數搜尋「MKVToolNix 提取字幕」時遇到的問題。即使檔案沒有可編輯的字元,播放器仍然可能顯示字幕。播放器可能正在渲染點陣圖字幕軌,或是影片早已將文字永久合成到每個畫格中。

如何用 mkvextract 提取 SRT 或 ASS

確認字幕軌 ID 後,使用 tracks 模式。這個 ID 是 mkvmerge -i 印出的數字,不是字幕在媒體播放器中的排列位置:

# Track 2 is an SRT-compatible text track
mkvextract "episode.mkv" tracks 2:english.srt

# Track 4 is an ASS track; keep it as ASS to retain styling
mkvextract "episode.mkv" tracks 4:styled.ass

# Extract two language tracks in one command
mkvextract "episode.mkv" tracks 2:english.srt 3:spanish.srt

對文字軌來說,這正是 MKVToolNix 的設計用途:辨識 Matroska 容器內的串流,並將它寫入實用的字幕格式。GeekLink 在匯入影片後也能完成流程中的同一段工作:它的 Embedded Sub 功能會偵測文字字幕軌,讓你選擇其中一條,並建立可供編輯或翻譯的來源語言 SRT。官方文件也列出 PGS 與 VobSub 的提取方式,但這些輸出是影像資料,不是可編輯文字。

還有一個實用細節:輸出格式由字幕軌類型決定,而不是由你選擇的檔名副檔名決定。把 PGS 字幕軌重新命名為 .srt,不會把像素變成字元;它只會讓影像檔看起來像是另一種格式。

為什麼 PGS 和 VobSub 仍需要 OCR

PGS 和 VobSub 都是真正的字幕軌,因此 mkvextract 可以成功將它們提取出來。但每個字幕事件都是一張小型的渲染影像。Blu-ray 的 .sup 檔案,或 DVD 的 .idx/.sub 成對檔案,包含的是字幕圖片,而不是背後的文字字串。

這表示整個流程包含兩項不同的工作:

  1. 解封裝字幕軌:使用 MKVToolNix 將原始字幕圖片從 MKV 中提取出來。
  2. 辨識字元:使用接受所提取影像格式的 OCR 工具。GeekLink 的免費轉換器接受 Blu-ray 的 .sup/PGS;DVD VobSub 的 .idx/.sub 則需要另一條支援 VobSub 的 OCR 流程。

當你想保留光碟翻錄檔中的原始字幕軌時,MKVToolNix 在第一步仍然非常實用。但它並不是 OCR 工具。對 Blu-ray PGS 來說,把提取出的 .sup 檔案放入 GeekLink,就能免費建立可編輯的 SRT。目前的轉換器還不能直接接受 DVD VobSub 的 .idx/.sub 成對檔案。

如果字幕已經燒錄進影片呢?

如果 mkvmerge -i 顯示沒有字幕軌,但播放影片時看得到文字,那些文字很可能已經燒錄在影片中——也就是影片串流內的像素。MKVToolNix 沒有字幕軌可以提取。重新封裝檔案、變更副檔名或再次執行 mkvextract,都無法找回從未以文字形式儲存的內容。

這也是 MKVToolNix 專案官方支援論壇所確認的界線:永久存在於影片畫面中的字幕,不是 MKVToolNix 的工作。下一個應使用的工具類別是 OCR,它會從選定的影片畫格讀取畫面上的字元。

如果你使用 Mac 或 Windows,GeekLink 可以完成燒錄字幕的 OCR 流程:

  1. 直接開啟 MKV,並選取字幕區域。
  2. 在本機讀取影片畫格中的字幕文字。
  3. 將重複畫格合併成帶時間軸的字幕行。
  4. 匯出 SRT、翻譯結果,或將新的字幕圖層燒錄到影片中。

重點不在於某一個工具取代另一個工具。MKVToolNix 提取已儲存的字幕軌;GeekLink 處理必須從影像中辨識字幕的情況。

MKVToolNix 與字幕 OCR:該使用哪個工具?

它們處理的是同一個問題的不同層面。請根據字幕資料實際存在的位置來選擇:

你的輸入MKVToolNixGeekLink
內嵌 SRT 或 ASS 字幕軌最適合:直接提取使用 Embedded Sub 將其提取為來源語言 SRT
內嵌 PGS/SUP 字幕軌提取原始影像軌使用 GeekLink 免費的 Blu-ray OCR 轉換器建立 SRT
內嵌 VobSub IDX/SUB 字幕軌提取原始影像軌需要支援 VobSub 的 OCR 工具;目前還不是 GeekLink 的直接輸入格式
影片畫格中的燒錄字幕無法提取讀取畫面文字並匯出帶時間軸的 SRT
需要翻譯或燒錄替換字幕提取字幕軌後即結束可繼續進行複查、翻譯與匯出
偏好的工作流程命令列解封裝與精確控制字幕軌在桌面環境完成 OCR 與字幕製作的一站式流程

字幕文字已存在於字幕軌時,使用 MKVToolNix。它免費、用途明確,而且非常適合提取串流,不需要 OCR 引擎重新解讀內容。輸入是文字圖片時,使用 OCR。對 Blu-ray PGS/SUP 而言,GeekLink 的影像字幕 OCR 轉 SRT 轉換器對所有人免費。DVD VobSub 是獨立的 .idx/.sub 格式,目前還不能直接輸入這個轉換器。

常見問題

MKVToolNix 可以從 MKV 提取字幕嗎?

可以,前提是字幕儲存為字幕軌。執行 mkvmerge -i input.mkv 找出字幕軌 ID,再對文字軌使用 mkvextract input.mkv tracks TRACK_ID:output.srt。PGS 和 VobSub 字幕軌也能提取,但輸出會是影像。接著可以將 Blu-ray PGS/SUP 放入 GeekLink 免費的影像字幕轉換器;DVD VobSub 則需要支援 VobSub 的 OCR 工具。

MKVToolNix 可以提取燒錄字幕嗎?

不行。燒錄字幕是影片串流中的像素,不是獨立的 Matroska 字幕軌。MKVToolNix 可以檢查和提取串流,但不會從影片畫格讀取字元。請改用字幕 OCR。

GeekLink 可以提取內嵌的 SRT 字幕嗎?

可以。匯入影片後,點擊影片上的 Embedded Sub 標籤;如果有多條字幕,就選擇文字字幕軌,GeekLink 會建立可供編輯或翻譯的來源語言 SRT。

為什麼 MKVToolNix 給我的是 SUP 或 IDX/SUB 檔案,而不是 SRT?

因為來源字幕軌是影像格式。SUP 通常用於 Blu-ray PGS 字幕,而 DVD VobSub 提取後會產生 IDX/SUB 成對檔案。必須使用 OCR,才能將這些字幕圖片轉成可編輯的 SRT 文字。GeekLink 的免費轉換器接受 Blu-ray SUP/PGS 格式;DVD IDX/SUB 成對檔案則需要支援 VobSub 的 OCR 流程。

GeekLink 支援 VobSub 字幕嗎?

目前的免費 Blu-ray 影像字幕轉換器接受 .sup/PGS 檔案。DVD VobSub 使用不同的 .idx/.sub 成對檔案,目前還不能直接輸入。請先用 MKVToolNix 提取,再使用支援 VobSub 的 OCR 工具。

MKVToolNix 和 mkvextract 是同一個東西嗎?

MKVToolNix 是工具套件;mkvextract 是套件中的命令列程式,用來提取字幕軌和其他 Matroska 資料。若要使用可預期的提取指令,請先用 mkvmerge -i 找出字幕軌,再用 mkvextract 將它寫出。

在 Mac 上處理燒錄字幕,最簡單的選擇是什麼?

如果字幕出現在畫面中,且不存在字幕軌,請使用本機 OCR 流程,而不是 MKVToolNix。GeekLink 可以從影片讀取選定的字幕區域,建立帶時間軸的 SRT,並在 Mac 上繼續翻譯或燒錄。

相關文章