認識 SRT 與 VTT 字幕格式
在影片製作與本地化工作流程中,SRT(SubRip Subtitle)與 VTT(WebVTT)是兩種最常見的文字字幕格式。這兩種格式均依賴精確的時間戳來控制字幕的出現與消失,但在結構上略有不同:
- SRT 格式:屬於傳統的輕量化格式,結構由遞增的數字編號、時間戳(格式為
時:分:秒,毫秒)以及純文字字幕組成。 - VTT 格式:作為 HTML5 的網絡字幕標準,必須以
WEBVTT標頭開頭,時間戳分隔符號使用句點(格式為時:分:秒.毫秒),並支援額外的元數據、樣式設定、註解與區域定義。
本工具全面支援這兩種格式,並在處理過程中完整保留原有的字幕識別碼、設定、註解、樣式、區域、換行方式和字幕文字,僅對時間戳進行精確的數學平移。
字幕同步化與時間平移原理
影片在剪輯、轉碼或合併不同片源時,經常會出現音訊與字幕不同步的情況。例如,當整部影片的畫面比字幕快了 2.5 秒,或者字幕比聲音提早了 1 秒出現,這時就需要進行全域的時間平移。
時間平移的原理是將檔案中所有字幕項目的開始時間與結束時間,同時加上或減去一個固定的時間數值。
- 正值平移:延後字幕顯示時間。例如輸入
2.5秒,所有字幕的起止時間都會向後推遲 2.5 秒。 - 負值平移:提早字幕顯示時間。例如輸入
-0.75秒,所有字幕都會提早 0.75 秒顯示。
這種固定平移非常適合解決因片頭刪減、影片合併或幀率轉換引起的整體時間偏差。
偏移格式與數值輸入規範
本工具提供兩種靈活的偏移格式,以配合不同的調整習慣:
| 偏移格式 | 輸入說明 | 範例 |
|---|---|---|
| 秒數 | 使用十進制小數,支援正負號。 | 2.5 或 -0.75 |
| 時碼 | 採用 H:MM:SS.mmm 格式,支援正負號。 |
-00:00:02.500 |
使用者可以根據需要,在工具中自由切換這兩種模式,並輸入相應的帶正負號數值進行精確微調。
結構檢查與時間次序驗證規則
為了確保平移後的字幕檔案能夠在各類播放器中正常載入,本工具在處理過程中會執行嚴格的結構與時間次序驗證。以下是工具所遵循的檢查規則與對應的錯誤提示:
- 檔案格式與編碼驗證:輸入的檔案必須為 UTF-8 編碼,且大小不超過 2 MB。若編碼不符,會顯示「此檔案並非有效的 UTF-8 文字。請另存為 UTF-8 後再試。」;若格式不符,則會提示「請使用附有編號字幕區塊的標準 SRT 檔案,或以 WEBVTT 開頭的 WebVTT 檔案。」。
- 時間戳有效性:若偵測到無法解析的時間格式,會提示「第
‹number›項字幕在第‹line›行的時間戳無效。」。 - 時序邏輯:單項字幕的結束時間必須遲於開始時間,否則會觸發「第
‹number›項字幕的結束時間必須遲於開始時間。」。同時,字幕必須按時間先後順序排列,若出現逆序,會提示「第‹number›項字幕的開始時間早於上一項字幕。」。 - 內嵌時間戳:對於 WebVTT 專有的內嵌時間戳,若出現順序錯亂,會顯示「第
‹number›項字幕的內嵌 VTT 時間戳超出該項字幕範圍或次序錯誤。」。 - 零點限制:任何字幕的開始時間都不能因負向平移而早於零點。一旦超出邊界,工具會中止平移並提示:「這項平移會令第
‹number›項字幕早於零點。請使用‹minimum›或更遲的偏移量。」。
瀏覽器端本地處理與隱私保護
本工具採用純前端技術構建。當你拖放字幕檔案或貼上文字時,所有的解析、時間計算、驗證以及新檔案的生成,全部都在你的本機瀏覽器內即時完成。
你的字幕文字和檔案只會留在你的瀏覽器內。BroBroGo 不會上載或儲存這些內容,確保敏感或未發布的影片字幕內容不會外洩。
常見問題解答 (FAQ)
支援哪些 SRT 和 VTT 檔案?
可使用附有編號字幕區塊的 UTF-8 SRT 檔案,或以 WEBVTT 開頭的 WebVTT 檔案。字幕識別碼、設定、註解、樣式、區域、換行方式和字幕文字都會原樣保留。
負向平移令時間早於零點時會怎樣?
工具會停止平移,不會剪短或刪除字幕,從而準確保留每項字幕的長度和指定偏移量;請減少推前幅度後再試。
固定平移可以修正愈來愈不同步的字幕嗎?
不可以。固定平移只能修正整個檔案內相同的延遲或提前時間。如果播放期間差距不斷增加,便要調整字幕計時速率或個別字幕。