太長不看:每一種字幕不是畫面的一部分,就是獨立的字幕軌。如果你能在播放器裡把它關掉,代表它是可以擷取的字幕軌;如果它固定顯示在畫面上關不掉,代表它是燒錄字幕,只有對影格做 OCR 才能還原文字。文字軌用 ffmpeg 幾秒鐘就能匯出,圖像軌(藍光 PGS 與 DVD VobSub)在擷取字幕軌後還需要 OCR,燒錄字幕則需要對影格做 OCR。
如何分辨我的字幕是哪一種?
最快的測試方法只需要一個影片播放器:試著把字幕關掉。如果字幕消失了,代表它是獨立的字幕軌,可以擷取出來。如果不管怎麼操作字幕都還在畫面上,代表它是燒錄字幕。這一個動作就能分辨你打開的幾乎所有檔案。
想要確定的答案,就列出所有軌道。在已安裝 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
如果你偏好圖形介面,MediaInfo 也能顯示相同的軌道清單。而且當你真的把字幕軌擷取出來時,副檔名本身就是線索:.srt 代表文字,.sup 代表藍光 PGS(一種圖像格式),.idx/.sub 代表 DVD VobSub(同樣是圖像格式)。
決定一切的單一測試:如果你能在播放器裡把字幕關掉,它就是可以擷取的字幕軌;如果不行,它就是燒錄在畫面上的字幕,需要用 OCR 處理。
四種字幕類型
撇開所有的副檔名和編碼器名稱不談,你會遇到的字幕其實正好只有四種。其中兩種是文字,一種是儲存在字幕軌裡的圖像,另一種則是直接烤進影片本身。
- 文字軌(內嵌 SRT/ASS、MP4 tx3g、WebVTT):字幕本身已經以純文字形式儲存。它在播放器裡可以開關,用 ffmpeg 或 mkvextract 幾秒鐘就能擷取出來——完全不需要 OCR。這是最理想的情況,也是每個人都希望自己遇到的那一種。
- 圖像軌——PGS 與 VobSub:PGS(
.sup)是藍光的字幕格式;VobSub(.idx/.sub)是 DVD 的字幕格式。這兩種都是獨立、可開關的字幕軌——但每一行字幕都是以一小張文字圖片的形式儲存,而不是文字。你需要先擷取字幕軌(用 mkvextract,或在 Mac 上用 Subler),再對圖片做 OCR,才能得到可編輯的 SRT。 - 燒錄字幕/硬字幕:文字直接烤進影片的像素裡——它是畫面的一部分,無法關閉。因為沒有字幕軌可以擷取,任何解封裝工具或轉檔工具都幫不上忙。你必須對影片的影格做 OCR,把文字重新讀出來。這正是 GeekLink 在 Mac 上所做的事。
- 隱藏式字幕(CEA-608/708):直接內嵌在影片訊號裡,而不是獨立的字幕軌——常見於電視廣播錄影和部分 MP4/MOV 檔案。它們可以開關、也是文字形式,所以用 ccextractor 或 ffmpeg 就能擷取,不需要 OCR。
四種裡有三種是可開關的字幕軌;只有燒錄字幕是畫面的一部分——這正是決定你能直接擷取、還是必須用 OCR 的分界線。
哪一種字幕該用哪個工具?
一旦你確定自己拿到的是四種裡的哪一種,該用什麼工具就很直接了。整個判斷邏輯一張表就能看完:
| 種類 | 如何分辨 | 如何擷取 | 輸出結果 |
|---|---|---|---|
| 文字軌(SRT/ASS/tx3g/WebVTT) | 可開關;ffprobe 顯示文字編碼 | ffmpeg 或 mkvextract | 立即輸出 SRT |
| 圖像軌——PGS/VobSub | 可開關;擷取出來是 .sup 或 .idx/.sub | 先擷取字幕軌,再做 OCR | SRT(OCR 之後) |
| 燒錄字幕/硬字幕 | 無法關閉;沒有列出字幕軌 | 對影片做影格 OCR | SRT(OCR 產出) |
| 隱藏式字幕(CEA-608/708) | 廣播/MP4/MOV 上可開關的字幕 | ccextractor(或 ffmpeg) | SRT |
四種裡只有兩種需要 OCR——圖像軌與燒錄字幕——原因相同:檔案裡沒有文字,只有圖片。
為什麼圖像軌和燒錄字幕都需要 OCR
表面上看像是兩個不同的問題,其實本質上是同一個。PGS 或 VobSub 字幕軌把每一行字幕存成文字的點陣圖;燒錄字幕則是直接畫在影片自己的像素裡。這兩種情況下,檔案裡都沒有任何文字可以直接複製出來——只有圖片(圖像軌)或像素(燒錄字幕)。
沒有任何格式轉換工具能把圖片變成文字;只有 OCR 才能讀出來。這就是為什麼把 PGS/VobSub 字幕軌轉成 SRT,或是從影片裡擷取燒錄字幕,本質上是 OCR 任務,而不是檔案格式轉換的任務。
這也是很多人卡關的原因:他們試著用 ffmpeg 或字幕轉檔工具,結果得到編碼器錯誤,或是一個在文字編輯器裡打不開的 .sup 檔案,就以為哪裡壞掉了。其實什麼都沒壞——工具只是沒辦法憑空生出根本不存在的文字。
在 Mac 上擷取每一種字幕
以下是在 macOS 上處理這四種字幕的實際做法。
文字軌——一行指令就能搞定,幾秒鐘就完成:
# Extract the first subtitle track as SRT
ffmpeg -i input.mkv -map 0:s:0 subtitles.srt
圖像軌(PGS/VobSub)——先擷取字幕軌,再對它做 OCR。在 Mac 上最簡單的做法,是先把字幕軌一次性算繪到影片上,再對輸出結果跑 OCR:
# Render the image-subtitle track onto the video (one-time re-encode)
ffmpeg -i input.mkv -filter_complex "[0:v][0:s:0]overlay[v]" \
-map "[v]" -map 0:a? -c:a copy rendered.mp4
接著把 rendered.mp4 匯入 GeekLink,執行 OCR 擷取,就能得到乾淨、時間軸正確的 SRT。
燒錄字幕——沒有字幕軌可以擷取,所以直接進行 OCR。把影片匯入 Mac 上的 GeekLink,執行 OCR 擷取:它會直接從影格中讀出字幕文字,匯出時間軸正確的 SRT,全程在本機離線完成,不會上傳任何內容。
隱藏式字幕——用 ccextractor(ccextractor input.mp4 -o captions.srt)或 ffmpeg 擷取;不需要 OCR。
針對這兩種需要 OCR 的情況——燒錄字幕影片與已算繪的圖像軌——GeekLink 是 Mac 上的本機解決方案:離線執行 OCR 擷取並匯出時間軸正確的 SRT,並支援語音辨識(Whisper)、AI 翻譯成 40 多種語言(Claude、GPT-4o、DeepSeek)、內建編輯器,以及在你要處理一整季影集時所需的批次處理。完整的 OCR 操作教學在這裡:如何使用 OCR 擷取燒錄字幕(硬字幕)。
常見問題
如何知道字幕是不是燒錄字幕?
試著在播放器裡把它關掉。如果怎麼樣都關不掉——不管你選擇或停用哪個字幕軌,它都還留在畫面上——代表它是燒錄在畫面裡的字幕。如果它消失了,代表它是可以擷取的可開關字幕軌。
可以擷取燒錄字幕嗎?
沒辦法以字幕軌的形式擷取——因為沒有字幕軌可以擷取,文字本身就是影片像素的一部分。你需要對影片影格做 OCR,把文字讀進 SRT 裡。在 Mac 上,GeekLink 會在本機完成這個過程,並匯出時間軸正確的 SRT。
什麼是 .sup 檔案?
藍光 PGS 字幕軌。它是以圖像為基礎——每一行字幕都是以文字圖片的形式儲存,而不是文字——所以需要 OCR 才能變成可編輯的 SRT。
什麼是 .idx/.sub 檔案?
DVD VobSub 字幕軌。和 PGS 一樣,它把字幕儲存成圖像而不是文字,所以同樣需要 OCR 才能轉換成 SRT。
Netflix 或串流平台的字幕是燒錄字幕嗎?
通常不是——它們是可以在播放器裡開關的文字軌。只有在有人把顯示字幕的畫面錄影下來時,字幕才會被燒進錄下來的像素裡,變成燒錄字幕。