如何從 MKV 檔案擷取字幕

作者 Flora Wang,影片在地化專家 · 發布於 2026 年 7 月 17 日 · 閱讀約 8 分鐘

太長不看: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_subtitleDVD 圖像字幕(VobSub)需要 OCR
完全沒有任何輸出沒有字幕軌道——如果看得到字幕,那是燒錄進畫面裡的對影片本身做 OCR

如果 ffprobe 列出的是 subripass,擷取免費且只要幾秒;如果列出的是 hdmv_pgs_subtitledvd_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 或 VobSub 字幕轉成 SRT 一定需要 OCR,因為這些「字幕」是文字的點陣圖圖像,而不是文字。 在 Mac 上,務實的做法是先用 ffmpeg 把軌道算繪到影片上一次,然後對結果做字幕 OCR:

# 把圖像字幕軌道燒錄到影片上(一次性重新編碼)
ffmpeg -i input.mkv -filter_complex "[0:v][0:s:0]overlay[v]" \
  -map "[v]" -map 0:a? -c:a copy burned.mp4

然後把 burned.mp4 匯入 GeekLink 並執行 OCR 擷取。它會偵測字幕區域,讀取每一幀的文字,把重複幀合併成單條字幕,匯出乾淨、時間軸準確的 SRT——全部在你的 Mac 本機完成,不上傳任何東西。重新編碼只要清晰到 OCR 能讀就夠了,所以預設設定即可。

如果 MKV 根本沒有字幕軌道(燒錄字幕)怎麼辦?

這在下載的動畫、劇集和重新編碼的影片裡最常見:ffprobe 沒列出任何字幕串流,可是影片播放時你明明看得到字幕。如果 ffprobe 顯示沒有字幕串流,但播放時能看到字幕,那它們就是燒錄進畫面本身的——任何擷取器、解多工器或轉換器都無法把它們抽出來,對影片做 OCR 是唯一的辦法。

  1. 在你的 Mac 上把 MKV 匯入 GeekLink——無需轉換,MKV 直接支援。
  2. 執行 OCR 擷取。它會從畫面幀中讀出字幕文字,並合併成帶時間軸的字幕行。
  3. 匯出為 SRT——或者先翻譯,再匯出雙語檔案。

OCR 在本機執行,一次處理一整批,所以一整季劇集可以一次排隊處理完。完整操作步驟見這裡:如何用 OCR 擷取燒錄字幕(硬字幕);如果你在挑工具,參見 2026 年最佳燒錄字幕擷取工具。不確定你的字幕是內嵌的還是燒錄的?兩者的區別在 內嵌字幕與燒錄字幕的區別 一文中有解釋。

怎麼翻譯你擷取出來的字幕?

擷取往往只是在地化工作的第一步。從 MKV 擷取出來的 SRT 檔案可以直接匯入 GeekLink,用 AI 翻譯成 40 多種語言,並保留原有時間軸——無需重新轉錄。 把結果匯出為翻譯後的 SRT、雙語 SRT,或把譯文燒錄進影片。完整流程:如何翻譯燒錄字幕

常見問題

怎麼從 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?

用一條 ffmpeg 指令把 PGS 軌道算繪到影片上(見上文指南),然後對結果執行 GeekLink 的字幕 OCR。它會從畫面幀中讀出字幕文字並匯出帶時間軸的 SRT,全部在你的 Mac 本機完成。

相關文章

ffmpeg 擷取不了的字幕?

GeekLink 用 OCR 讀取 PGS、VobSub 和燒錄字幕,並匯出乾淨的 SRT——全部在你的 Mac 本機完成。

免費下載