太長不看:MKV 檔案裡的字幕分為兩種本質不同的形式,用哪種提取方法取決於你手上是哪一種。 如果 MKV 裡含有文本字幕軌道(SRT 或 ASS),一條免費命令——ffmpeg 或 MKVToolNix 的 mkvextract——幾秒鐘就能把字幕檔案存出來。但有兩種常見情況里根本沒有文本:影像字幕軌道(PGS 和 VobSub,是藍光和 DVD 抓取的標準格式),以及直接燒錄進畫面裡的字幕。這兩種都需要 OCR。本文覆蓋全部四種情況,附上準確的命令,先從一個 10 秒的檢查開始,幫你判斷自己屬於哪一種。
怎麼檢視一個 MKV 檔案裡有哪些字幕軌道?
在提取任何東西之前,先把字幕流列出來。裝好 ffmpeg 後(Mac 上執行 brew install ffmpeg),執行:
ffprobe -v error -select_streams s \
-show_entries stream=index,codec_name:stream_tags=language,title \
-of default=noprint_wrappers=1 input.mkv
或者,如果你已經在用 MKVToolNix,mkvmerge -i input.mkv 會用更直白的方式列印同樣的資訊。輸出裡的 codec_name 就說明了一切:
| codec_name | 它是什麼 | 如何得到 SRT |
|---|---|---|
subrip | 純文本字幕(SRT) | 一條 ffmpeg 命令——幾秒搞定 |
ass | 帶樣式的文本字幕(動漫裡常見) | 一條 ffmpeg 命令;轉成 SRT 會丟掉樣式 |
hdmv_pgs_subtitle | 藍光影像字幕(文字的圖片) | 需要 OCR |
dvd_subtitle | DVD 影像字幕(VobSub) | 需要 OCR |
| 完全沒有任何輸出 | 沒有字幕軌道——如果能看到字幕,那是燒錄進畫面裡的 | 對影片本身做 OCR |
如果 ffprobe 列出的是 subrip 或 ass,提取免費且只要幾秒;如果列出的是 hdmv_pgs_subtitle 或 dvd_subtitle,那這條軌道裝的是文字的圖片,不用 OCR 任何工具都無法把它變成 SRT。 這個區別是關於 MKV 字幕最常見的困惑點,也決定了後面的一切。
怎麼用 ffmpeg 從 MKV 提取 SRT 字幕?
對於文本軌道,ffmpeg 是最快的方式,在 Mac、Windows 和 Linux 上用法都一樣:
# 把第一條字幕軌道匯出為 SRT
ffmpeg -i input.mkv -map 0:s:0 subtitles.srt
# 匯出第二條字幕軌道(0:s:1 = 第二條,以此類推)
ffmpeg -i input.mkv -map 0:s:1 subtitles.srt
# 按語言而非位置選擇軌道
ffmpeg -i input.mkv -map 0:s:m:language:eng english.srt
# 保持 ASS 軌道的原始格式(保留樣式)
ffmpeg -i input.mkv -map 0:s:0 -c copy subtitles.ass
有兩點值得了解。第一,把 ASS 軌道轉成 SRT 會悄悄丟掉所有樣式——字型、顏色、定位、卡拉 OK 效果——因為 SRT 格式無法表達這些;如果你需要樣式,就改成匯出為 .ass。第二,-map 0:s:0 只對字幕流計數,所以這個編號跟 ffprobe 列印的流索引不是同一個數字。
ffmpeg 在提取時會在字幕格式之間做轉換,這就是為什麼 ffmpeg -i input.mkv -map 0:s:0 subtitles.srt 對 SRT 和 ASS 軌道都有效——但它無法把影像字幕軌道(PGS/VobSub)轉成文本,如果你硬要試,會以編碼器報錯告終。
怎麼用 MKVToolNix(mkvextract)提取字幕?
MKVToolNix(免費,mkvtoolnix.download,或 brew install mkvtoolnix)會以原始格式逐位元精確地提取軌道。先列出軌道 ID,再按 ID 提取:
# 列出軌道及其 ID
mkvmerge -i input.mkv
# 軌道 ID 0: 影片 (HEVC) / 軌道 ID 1: 音訊 (AAC) / 軌道 ID 2: 字幕 (SubRip/SRT)
# 把軌道 2 匯出為 SRT
mkvextract input.mkv tracks 2:subtitles.srt
# 一次匯出多條軌道
mkvextract input.mkv tracks 2:english.srt 3:spanish.srt
有一個幾乎絆倒所有搜尋這個問題的人的坑:MKVToolNix 圖形介面沒有提取功能——提取只以命令列工具 mkvextract 的形式提供。圖形介面負責的是混流(把軌道裝進去)、編輯頭資訊和拆分檔案,所以在裡面找「extract」按鈕,按設計就是找不到的。
你寫的副檔名必須與軌道的編解碼器匹配:SubRip 用 .srt,ASS/SSA 用 .ass,PGS 用 .sup,而對於 VobSub,mkvextract 會寫出一對 .idx + .sub 檔案。這就引出了提取出來的檔案根本不是文本的那種情況。
如果字幕軌道是 PGS 或 VobSub(影像格式)怎麼辦?
藍光抓取幾乎總是帶 hdmv_pgs_subtitle 軌道,DVD 抓取則帶 dvd_subtitle(VobSub)。這些軌道把每一條字幕存成一張渲染好的圖片,由播放器疊加在影片上——裡面沒有任何文本。提取出來會得到一個 .sup 或 .idx/.sub 檔案,字幕編輯器和影片平臺都無法把它當作文本讀取。
將 PGS 轉成 SRT 仍需要 OCR,但不必先把字幕軌道燒錄到影片裡。 在 Mac 上先用 mkvextract 把 PGS 軌道抽成 .sup 檔案:
# 先查看 PGS 軌道的 ID
mkvmerge -i input.mkv
# 將 2 換成實際的 PGS 軌道 ID
mkvextract input.mkv tracks 2:subtitles.sup
然後把 subtitles.sup 拖進 GeekLink Dashboard 的匯入區域。出現提示時選擇字幕語言;GeekLink 會直接辨識每一張 PGS 圖片,沿用軌道原有的 cue 時間戳,並在本地輸出 SRT。整個過程不需要重新編碼影片,也不會上傳影片。這個直接 SUP/PGS 流程針對 PGS;VobSub(.idx/.sub)目前仍需要另外轉換或走影片 OCR 流程。
如果 MKV 根本沒有字幕軌道(燒錄字幕)怎麼辦?
這在下載的動漫、劇集和重新編碼的影片裡最常見:ffprobe 沒列出任何字幕流,可影片播放時你明明看得到字幕。如果 ffprobe 顯示沒有字幕流,但播放時能看到字幕,那它們就是燒錄進畫面本身的——任何提取器、解封裝器或轉換器都無法把它們抽出來,對影片做 OCR 是唯一的辦法。
- 在你的電腦上把 MKV 匯入 GeekLink——無需轉換,MKV 直接支援。
- 執行 OCR 提取。它會從幀中讀出字幕文字,併合併成帶時間軸的字幕行。
- 匯出為 SRT——或者先翻譯,再匯出雙語檔案。
OCR 在本地執行,一次處理一整批,所以一整季劇集可以一次排隊處理完。完整操作步驟見這裡:如何用 OCR 提取燒錄字幕(硬字幕);如果你在挑工具,參見 2026 年最佳燒錄字幕提取工具。不確定你的字幕是內嵌的還是燒錄的?兩者的區別在 內嵌字幕與燒錄字幕的區別 一文中有解釋。
怎麼翻譯你提取出來的字幕?
提取往往只是本地化工作的第一步。從 MKV 提取出來的 SRT 檔案可以直接匯入 GeekLink,用 AI 翻譯成 40 多種語言,並保留原有時間軸——無需重新轉錄。 把結果匯出為翻譯後的 SRT、雙語 SRT,或把譯文燒錄進影片。完整流程:如何翻譯燒錄字幕。
常見問題
怎麼把藍光碟裡的官方字幕提取出來?
先用 MakeMKV 把碟抓取成 MKV 檔案。抓取會保留碟裡的官方字幕軌,而這些字幕軌是 PGS(.sup) 圖片、不是文字。用 mkvextract 抽出 PGS 軌,把生成的 .sup 拖進 GeekLink 並選擇字幕語言進行 OCR;GeekLink 會保留原始 cue 時間戳。如果某個版本的字幕是燒錄進畫面、而不是獨立軌道,那就直接對影片幀做 OCR。
怎麼從 MKV 檔案提取字幕?
如果 MKV 有文本字幕軌道,執行 ffmpeg -i input.mkv -map 0:s:0 subtitles.srt——幾秒完成而且免費。如果軌道是影像格式(PGS/VobSub),或者字幕是燒錄進畫面裡的,就沒有文本可提取;你需要 OCR 軟體從幀裡把它們讀出來。
MKVToolNix 圖形介面能提取字幕嗎?
不能。MKVToolNix 圖形介面把軌道混流進 MKV 檔案,但沒有提取功能。提取要用 mkvextract,也就是隨它一起安裝的命令列工具:先用 mkvmerge -i input.mkv 找出軌道 ID,再執行 mkvextract input.mkv tracks 2:subtitles.srt。
VLC 能從 MKV 提取字幕嗎?
不能。VLC 可以顯示和切換內嵌字幕軌道,但沒有把軌道匯出為字幕檔案的功能。文本軌道用 ffmpeg 或 mkvextract,影像字幕和燒錄字幕則用 OCR。
為什麼我提取出來的是 .sup 或 .idx/.sub 檔案,而不是 SRT?
因為這條軌道是影像格式的:.sup 是藍光 PGS,.idx/.sub 是 DVD VobSub。兩者都把字幕存成圖片,所以提取出來保留的還是圖片。把它們轉成 SRT 需要 OCR——任何格式轉換器都做不到,因為檔案里根本沒有可轉換的文本。
在 Mac 上怎麼把 PGS 字幕轉成 SRT?
用 mkvextract 抽出 PGS 軌道,把生成的 .sup 拖進 GeekLink 並選擇字幕語言。GeekLink 會直接 OCR PGS 圖片,沿用軌道原有的 cue 時間戳匯出 SRT,全部在你的 Mac 本地完成。