分類
教學

用正規表示式互相轉換 webvtt 與 srt 字幕格式

WebVTT 是 W3C 制定的字幕格式,可以用在 HTML5 網頁播放影片。這種字幕格式跟行之有年的 srt 還滿像的,所以我們可以簡單用正規表示式來轉換這兩種字幕格式。

這是 WebVTT 格式:[code]WEBVTT FILE

1
00:00:00.499 –> 00:00:03.330
第一句

2
00:00:03.330 –> 00:00:05.350
第二句[/code]
而 srt 格式則是像這樣:[code]1
00:00:00,499 –> 00:00:03,330
第一句

2
00:00:03,330 –> 00:00:05,350
第二句[/code]
很容易看出來,差異就只有開頭的WEBVTT FILE跟時間碼的句號.與逗號,WEBVTT FILE的部份只有兩行,可以手動處理,但時間碼的部份,一個影片可能有上千句,手工處理太不切實際。還好,我們有正規表示式可以用;利用支援正規表示式的文字編輯器,如 Notepad++ 或是 EmEditor ,套用以下規則就可以一次把所有時間碼改好。

WebVTT→srt:
尋找(\d\d:\d\d:\d\d)\.(\d\d\d) --> (\d\d:\d\d:\d\d)\.(\d\d\d)
取代為\1,\2 --> \3,\4

srt→WebVTT:
尋找(\d\d:\d\d:\d\d),(\d\d\d) --> (\d\d:\d\d:\d\d),(\d\d\d)
取代為\1.\2 --> \3.\4

參考資料:

  1. How can I convert *.vtt subtitles to *.srt subtitles using regex (regular expressions) in notepad++? – Super User

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *