如何將 SRT 字幕轉換為 WebVTT
將檔案載入到字幕工具包中(自動偵測格式)並以其他格式下載。計時在內部保持為整數毫秒,因此轉換是精確的且往返不會累積漂移。
重命名該文件不起作用。 WebVTT 檔案必須以文字行 WEBVTT 開頭,並且必須在毫秒之前使用句號而不是逗號。瀏覽器在重新命名 SRT 後通常不會顯示任何內容,也不會出現錯誤解釋原因。
真正破壞播放的三個差異
首先,标题。 WebVTT 檔案的第一行以 WEBVTT 一詞開頭。 SRT 沒有標頭,從第一個提示開始。這一行缺失是轉換後的檔案在瀏覽器中無提示失敗的最常見原因。
其次,毫秒分隔符號。 SRT 用逗號寫入 00:00:01,500;WebVTT 寫入 00:00:01.500 帶句號。玩家期待其中一個而給出另一個時通常會拒絕這個提示。
第三,提示编号。 SRT 通常在每個時間戳記之前在其自己的行上放置一個整數。在 WebVTT 中,該標識符是可選的,當存在時,它可以是任何字串而不是數字。
還有一些較小的差異並不那麼重要。 WebVTT 允許省略小時部分,因此 01:30.000 表示九十秒。它還支援時間戳後的cue設置,例如line:90%align:center。
什麼能在轉換中存活下來,什麼不能
- 兩個方向的計時都準確無誤。兩種格式均表示整數毫秒。
- 提示內的換行符號會保留下來。它們對於可讀性很重要並被保留。
- 諸如線條和對齊之類的提示設定會保留到 VTT 中,並被丟棄到 SRT 中,因為 SRT 無法表達它們。
- 出於同樣的原因,WebVTT STYLE 和 REGION 區塊將被跳過而不是轉換。
- 匯出時提示編號從 1 開始連續重新編號,這修復了手動編輯文件累積的間隙和重複項。
驗證發生在載入時
每個文件在載入時都會被檢查,結果會顯示在預覽上方。每個訊息都會指定一個特定的提示編號,因為「此檔案無效」在具有九百個提示的檔案中毫無用處。
錯誤是真正的破壞:提示在開始之前結束、提示在前一個提示之前開始、無法讀取的時間戳。警告在技術上是有效的,但通常是無意的:永遠不會出現的零持續時間提示,或兩個提示重疊,因此同時顯示。
格式錯誤的提示不會中止文件。壞塊被報告,其餘塊仍然加載,因此您可以一次性看到問題的規模,而不是一次修復一個崩潰的錯誤。
當您在那裡時刪除格式
字幕檔案通常帶有標記:類似 HTML 的標記(如斜體和粗體)、WebVTT 類別和語音標記以及控制定位的 SubStation 覆蓋區塊。
刪除格式操作會刪除所有這些內容,同時保留每個提示內的換行符號。諸如 & 之類的字元實體故意保留,因為它們是內容而不是格式。
工作範例:HTML5 影片元素的字幕
您擁有來自轉錄服務的 episode-01.srt,並且需要網頁上影片的字幕。該頁面使用了 track 元素,這需要 WebVTT。
SRT 檔案的開頭如下:
1 / 00:00:02,000 --> 00:00:04,500 / 歡迎回到節目。
- 將 episode-01.srt 載入到字幕工具包中。偵測到格式;將顯示提示計數和任何驗證訊息。
- 修復任何報告為錯誤的內容。有關重疊的警告值得一看,但很少會阻止播放。
- 下載為 VTT。
結果: 以 WEBVTT 行開頭的文件,後面跟著時間戳記為 00:00:02.000 --> 00:00:04.500 並帶有句號的提示。提示從 1 開始重新編號,文字及其內部換行符保持不變,計時與毫秒相同。
開啟工具
在瀏覽器中解析和重寫,這對於禁運下的字幕很重要。它不轉錄或翻譯。
這不包括什麼
- 僅限 SRT 和 WebVTT。 ASS 和 SSA、TTML、SAMI 和嵌入式廣播字幕格式既不能讀取也不能寫入。
- 僅針對 VTT 輸出保留提示定位;匯出到 SRT 會丟棄它。
- STYLE 和 REGION 區塊將被跳過而不是轉換。
- 此工具可以轉換您已有的字幕檔。它不轉錄音訊也不翻譯。
- 提示編號在匯出時總是會重新編號,因此故意編號不連續的檔案將會遺失該編號。