跳至主要內容
SubtitleMatrix

VobSub 轉 SRT

媒體輸入位元圖字幕(PGS / VobSub)

首次執行會下載文字辨識器 —— 約 4 MB,外加語言模型,由本站提供,之後瀏覽器會快取。不會上傳任何內容;結果是機器辨識的,採用前請先校對。

選項

位元圖字幕是文字的圖片,所以必須把詞從中讀回來。告訴辨識器它看到的是哪一種語言——下拉選單列出了本站發佈的全部語言。選字幕實際使用的那一種:用英文模型讀俄文字幕只會得到雜訊,而不是俄文。只會下載你選中的模型(其他模型永遠不會下載),所以切換語言的代價是每種語言一次下載,之後走快取。

VobSub 把一條字幕軌拆在兩個檔案裡,兩個都必須提供。.sub 裝圖像:一串 MPEG program-stream 封包,每個封包帶著用兩位元行程編碼壓縮的位元圖。.idx 裝其餘全部:十六色調色盤、畫面尺寸,以及每行一筆的記錄——開始時間,以及它的圖像在 .sub 裡的位元組偏移。只給 .sub,無法知道一共有多少條字幕;只給 .idx,沒有圖可讀。這一頁接收這一對檔案,寫成 .srt。

每個封包靠那個位元組偏移定位,所以索引不是便利貼,而是地圖。封包內有兩個標頭字,給出大小與控制序列的位置;控制序列設定顯示區域、選定像素引用調色盤的哪四個項目,並指向壓縮位元圖。解碼器要沿行程編碼走兩遍,一遍偶數行、一遍奇數行,因為 VobSub 把交錯影格的兩場分開存放。這就是為什麼草率的解碼器會產出一張每隔一行就缺一行的圖。

時間戳只存在於 .idx 裡,也是唯一可用的形式。一條字幕在下一個開始時結束;最後一條給兩秒,並記錄在有損清單裡。辨識不出文字的圖像會被略過並計數,而不寫成空白行。

文字來自 OCR,也就是光學字元辨識,意味著它是一次閱讀而不是轉錄。DVD 字幕在這裡最難:它們常用小號位元圖字型,畫外音與歌詞還會用斜體;辨識器不知道一個傾斜的字與正體是同一個字。請校對。選擇字幕實際使用的語言——模型按頁選擇、只下載一次,之後由瀏覽器快取。

不上傳任何東西。這一對檔案在這個分頁裡解析與辨識,唯一的網路請求是本站提供的辨識器檔案。

常見問題

為什麼 VobSub 轉 SRT 需要 .idx 與 .sub 兩個檔案?

因為 VobSub 在設計上就把一條軌拆成兩份。.sub 裝位元圖;.idx 裝十六色調色盤、畫面尺寸,以及每張圖的位元組偏移和開始時間。單獨任何一份都回答不了一共有多少條字幕、它們說了什麼。只有 .sub 時,索引必須從來源光碟重新取回,否則光學字元辨識無從開始。

.idx 裡的 filepos 數字指向什麼?

指向 .sub 檔案裡的位元組偏移,落在某個 MPEG program-stream 封包的起點,那個封包的 stream id 標著它是私有串流——DVD 播放器用來放字幕的那一類。這個數字不是字幕序號,在少見的碟片上也不一定與時間戳同序,所以這一頁按時間戳排序,而不按檔案裡出現的行序。

為什麼有些行字母讀錯了,但長度是對的?

因為調色盤和字形都來自圖片,而光學字元辨識在固定尺寸上分辨形狀。DVD 字幕常用小號、很斜或很粗的字型;斜體(畫外音和歌詞常用)是常見的受害者,因為對一個人來說斜體還是同一個字,對辨識器來說卻是另一種形狀。長度對、字母不對時,正確的修法是校對,而不是換工具。

VobSub 字幕的螢幕位置會保留到 SRT 裡嗎?

不會,而且沒有地方可放。VobSub 把位置存成每個封包內的顯示區域矩形,座標是十二位元的;SRT 完全沒有定位語法。頁面用這個矩形判斷字在哪裡,幫助光學字元辨識正確裁切,然後就丟掉它。播放器需要定位字幕時,能承載這些資訊的是 ASS;帶位置標記的 SRT 只是一種約定,有的播放器認,有的會把標記原樣印出來。

我只有 .sub、沒有 .idx,VobSub 轉 SRT 能重建索引嗎?

不能只靠 .sub,也不能可靠地從圖像重建。偏移原則上可以掃描私有串流封包找到,但時間戳無法恢復:它們只存在於 .idx 裡。重建索引意味著回到光碟或抽出這一對的 VOB 檔案,或者找回旁邊另一條軌的原始 .idx。猜時間會產出一份看起來正確、卻與影片越走越偏的檔案,那比沒有檔案更糟。

.idx 與 .sub 在處理時會被傳送出去嗎?

不會。兩份檔案都在這個分頁裡讀入記憶體、在這裡解碼、在這裡辨識;唯一的下載是本站提供的文字辨識器,之後由瀏覽器快取。處理一對檔案時打開 Network 面板,沒有任何請求攜帶它們。這對 VobSub 尤其重要,因為這些檔案通常來自使用者自己擁有的光碟,正是最不該交給線上轉換服務的素材。

相關工具