SRT 轉 VTT
瀏覽器的 <track> 元素只能播放 WebVTT 字幕,所以在 VLC 正常顯示的 SRT 檔,放到網頁上卻什麼都看不到。在這裡轉成 VTT,同一份字幕就能在任何 HTML5 播放器中顯示。
字幕轉檔
或將SRT, VTT, ASS … 檔案拖曳到這裡 ·
每個檔案最大 95 MB· 最多 20 個檔案· 30 分鐘後刪除
檔案會在我們的伺服器上處理,並於 30 分鐘後刪除。
將每條字幕平移這麼多秒。字幕出現太早請填正數,太晚則填負數(例如 -1.5)。
若字幕隨著影片播放越來越不同步,代表字幕是針對不同的影片版本製作的,請設定此項與目標影格率。
你要搭配字幕播放的影片影格率。從 23.976 轉換為 25 可解決大多數 PAL/NTSC 的不同步問題。
僅用於沒有時間資訊的純 TXT 輸入:每一行會依序顯示這麼長的時間。如有需要,之後可在字幕編輯器中調整時間。
自動偵測可處理大多數檔案。若帶重音的字母、西里爾字母或阿拉伯字母變成問號,請手動選擇編碼。輸出一律為 UTF-8。
預設 ASS 樣式使用的字型。觀看者的電腦必須已安裝該字型;Arial 是最保險的選擇。
相對於高度 1080 像素影片的大小。48 是電影常用的大小。
使用方式
- 1
拖入 .srt 檔案
加入一個字幕檔,或每種語言各加一個,最多 20 個檔案,每個不超過 95 MB。系統會偵測舊式編碼,並改寫為 WebVTT 所要求的 UTF-8。
- 2
視需要調整時間
若只是單純轉換,保持預設即可。如果字幕比影片早出現或晚出現,請在進階設定的平移時間軸中輸入秒數。
- 3
轉換為 WebVTT
按下 Convert to WebVTT (VTT),再下載 .vtt 檔案。將檔案與影片上傳到同一個位置;我們這邊的副本會在 30 分鐘後刪除。
上傳 SRT 並按下 Convert to WebVTT (VTT)。你會得到一個具備必要 WEBVTT 標頭、毫秒以句點分隔、文字為 UTF-8 的檔案,可直接用於 <track> 元素、Video.js、Plyr 或課程平台。
為什麼網頁播放器需要 VTT 而不是 SRT
SRT 約在 2000 年起源於 DVD 擷取圈,後來成為桌面播放器、編輯軟體和下載字幕的預設格式。WebVTT 於 2010 年為網路設計,以 SRT 的語法為基礎,HTML 標準也將它定為 <track> 元素使用的格式。Chrome、Firefox、Safari 和 Edge 都原生支援,而且沒有任何一個會透過 track 讀取 SRT。
兩者在文字編輯器中看起來幾乎一樣,所以差異常讓人措手不及。VTT 檔案必須以 WEBVTT 開頭、必須是 UTF-8,且 SRT 寫成 00:01:05,300 的時間,VTT 要寫成 00:01:05.300。此外,VTT 還能包含位置、樣式和註解,這些是 SRT 從來沒有的。因此從 SRT 轉成 VTT 不會損失任何內容;反過來透過 VTT 轉 SRT 轉換時,這些額外內容就會被捨棄。
取得 .vtt 之後,依下方範例從網頁連結它。如果影片的格式瀏覽器無法播放,例如 iPhone 拍的 .mov,這部分可參考 MOV 轉 MP4 教學。
<video controls src="lecture.mp4">
<track kind="subtitles" src="lecture.zh-TW.vtt"
srclang="zh-TW" label="中文(台灣)" default>
</video>SRT 與 VTT 比較:所有重要差異
| 項目 | SRT | WebVTT |
|---|---|---|
| 檔案第一行 | 字幕編號 1 | WEBVTT |
| 時間戳記 | 00:01:05,300 | 00:01:05.300(小時可省略) |
| 字幕編號 | 必要 | 選用的識別碼 |
| 文字編碼 | 不限,常為舊式字碼頁 | 僅限 UTF-8 |
| 位置與對齊 | 沒有標準 | 字幕設定,例如 line 和 align |
| 樣式 | <i>、<b>、<u>、<font> | <i>、<b>、<u>,以及用 CSS 設定樣式的類別 |
| 伺服器上的 MIME 類型 | application/x-subrip | text/vtt |
SRT
SubRip 字幕
SRT 是 SubRip 的字幕格式,SubRip 是約在 2000 年出現的免費 Windows 程式,用來從影片中擷取字幕。每一筆字幕是一段純文字,包含編號、開始與結束時間和字幕文字。它是支援度最廣的字幕格式,VLC、YouTube、Facebook、影片編輯軟體和智慧電視都能使用。SRT 只有基本格式,沒有定位或樣式的標準。
- 壓縮方式
- –
- 透明度
- –
- 動畫
- –
- 推出年份
- SubRip
VTT
WebVTT 字幕
VTT 是 Web Video Text Tracks 格式,由 WHATWG 和 W3C 於 2010 年前後為 HTML5 影片開發。它看起來與 SRT 相似,但多了 WEBVTT 標頭,並支援定位、樣式、說話者標籤和中繼資料。瀏覽器透過 <track> 元素使用它來顯示字幕,串流平台和 YouTube 也接受。部分桌面播放器和編輯器則預期使用 SRT。
- 壓縮方式
- –
- 透明度
- –
- 動畫
- –
- 推出年份
- 2010 · W3C / WHATWG
HTML5 影片只會透過 track 元素載入 WebVTT,因此為桌面播放器製作的 SRT 字幕,必須先轉成 VTT 才能顯示在網頁上。
VTT 字幕在瀏覽器中不顯示
字幕在線上可正常顯示,但從硬碟開啟 HTML 檔案時卻不行
瀏覽器會封鎖從
file://頁面載入的字幕軌。請透過本機網頁伺服器或在實際網站上測試。字幕軌從其他網域載入,內容卻是空的
在
<video>元素加上crossorigin,並在存放 .vtt 的伺服器 CORS 標頭中允許你的網站。伺服器以 text/plain 傳送檔案
將伺服器設定為以
text/vtt提供 .vtt;有些播放器會拒絕其他類型。每則字幕都早了一秒出現
以正值的平移時間軸(例如 1)重新轉換,並取代原檔案。
SRT 轉 VTT 常見問題
轉換器會修改檔案中的哪些內容?
它會在檔案開頭加上 WEBVTT 行,把毫秒前的逗號換成句點,並以 UTF-8 儲存。WebVTT 允許把字幕編號當作選用的識別碼,字幕文字本身不會更動。
可以直接把 .srt 改名成 .vtt 嗎?
不行。沒有 WEBVTT 標頭、時間戳記又使用逗號時,瀏覽器會拒絕該字幕軌,或略過每一則字幕。檔案必須重新寫過,在這裡只需要一秒鐘。
斜體和粗體會保留嗎?
可以,<i>、<b> 和 <u> 在兩種格式中都存在。SRT 的 <font color> 標籤在 WebVTT 中沒有直接對應,因為 WebVTT 是透過 CSS 類別為字幕上色,所以如果檔案大量使用它,請開啟移除格式標籤。
我的課程平台需要哪種字幕檔?
多數學習平台和網頁播放器都支援 WebVTT,許多也接受 SRT。如果上傳表單只列出 .vtt,請在這裡轉換;如果只列出 .srt,請用 VTT 轉 SRT 做反向轉換。
可以把字幕放在畫面上方嗎?
WebVTT 透過字幕設定支援,例如 line:0,轉換後可以用文字編輯器自行加入。SRT 沒有儲存位置的標準方式,因此轉換後的字幕會從預設的底部位置開始。
如何為同一部影片加入多種語言字幕?
先轉換每種語言的 SRT,再為每個檔案各加一個 <track>,並設定各自的 srclang 和 label。觀眾可以從播放器的字幕選單選擇語言。