字幕不同步?為什麼會飄移,以及如何校正時間
字幕出錯通常有兩種情況:每一行都差了同樣的時間,或是隨著影片播放,落差越來越大。固定的落差只要把每一行都平移同樣的秒數即可修正。落差逐漸擴大時,則需要以兩個點來對齊,或調整影格率,因為畫面的播放速度與字幕編排時所依據的速度不同。在修改檔案之前,先確認你遇到的是哪一種情況。
字幕時間校正字幕太早或太晚出現免費使用字幕檔案儲存了什麼
字幕檔案是一份字幕條目的清單。每個條目都有開始時間、結束時間,以及要顯示的文字。播放器在影片時鐘到達開始時間時顯示該條目,並在結束時間時隱藏。當這些時間與畫面中的語音不再吻合時,字幕就不同步了。
以下是 SRT 檔案中的一個條目:
1
00:00:01,000 --> 00:00:03,500
Hello, and welcome back.
時間格式依序為時、分、秒與毫秒。這個條目從 1.0 秒顯示到 3.5 秒。
固定的落差:平移每一行
如果每條字幕都同樣提早或延遲,字幕清單與影片就是從不同的起點開始。常見原因包括:
- 影片被剪裁過。片頭或商標從開頭被剪掉,但字幕沒有跟著修改。
- 字幕是為另一個版本製作的,例如多了開場的電視播出版本。
- 檔案是從較長的影片中切出來的。它的時鐘現在從零開始,因此每條字幕都會提早,提早的時間等於前面被剪掉的長度。
解決方法是平移:對每個條目加上或減去相同的秒數。字幕顯示太早時加上秒數,顯示太晚時減去秒數。如果某一行比說話者開口早了兩秒,就把每條字幕都延後兩秒。然後檢查第一行和靠近結尾的一行。如果兩者都吻合,平移就正確了。
逐漸擴大的落差:影格率與飄移
影格率是每秒顯示的靜態畫面數。電影通常以每秒 23.976 影格儲存。許多歐洲電視則以每秒 25 影格播放。若把同一部電影以每秒 25 影格播放,它會快上約 4%,因此每個事件在時鐘上都會稍微提早發生。字幕仍然是按照原本的時間編排的。
落差會逐漸擴大,是因為誤差是百分比,而不是固定的時間。一開始字幕幾乎是對的。播放到第 40 分鐘時,字幕已落後超過一分鐘。到了 90 分鐘電影的結尾,落後的時間接近四分鐘。無論速度不符是來自格式轉換還是剪輯,結果都一樣。
以兩個點修正飄移
找出兩行明顯與語音吻合的字幕:一行靠近開頭,一行靠近結尾。播放影片,記下每句話在畫面中開始的時刻,並與檔案中的時間比對。每組配對提供一個點,兩個點便能決定一條字幕可以依循的直線。
範例:檔案中 1:00 的一行,實際在 1:02 說出。接近結尾處,1:30:00 的一行實際在 1:33:50 說出。拉伸係數為 (5630 − 62) ÷ (5400 − 60) = 1.0427,與前面的 4% 相同。將每個時間乘以 1.0427,再平移結果,使第一行落在 1:02。
利用影格率修正
如果你知道兩者的影格率,就可以不必找兩個點。將每個時間乘以字幕編排時所用的影格率,再除以影片的影格率。以每秒 25 影格編排的字幕用於 23.976 的影片時,需要的係數為 25 ÷ 23.976 = 1.0427,與範例中的拉伸係數相同。
SRT 與 VTT 的差異
兩種格式儲存的內容相同:每個條目的開始時間、結束時間與文字。差異在於細節。
| SRT | WebVTT(VTT) | |
|---|---|---|
| 第一行 | 條目編號 | WEBVTT 一詞 |
| 小數點 | 逗號:00:00:01,000 | 句點:00:00:01.000 |
| 小時 | 一律寫出 | 可以省略:00:01.000 |
| 位置與樣式 | 基本格式不包含 | 時間之後可選擇加入設定 |
網頁使用 WebVTT 作為影片字幕。大多數桌面播放器與影片編輯軟體則讀取 SRT。兩種格式互相轉換時,時間會保留:只有標頭與小數點符號會改變。不要用尋找與取代把每個逗號都換成句點,因為這樣也會改動字幕文字中的逗號。只修改時間那一行。
找出精確的影格
若要用眼睛檢查時間,你需要找到某句話開始的那一格。在該時刻擷取影片的靜態畫面,有助於找到對應的條目。將影格存成圖片,或為整段影片製作縮圖總覽,就能同時看到多個時刻。靜態畫面只能顯示畫面,無法呈現聲音,因此也要聽一聽那一行台詞。
特殊情況
- 被移除的場景。 當某個場景被剪掉時,落差會在該處突然跳動,而不是逐漸擴大。前後兩段各需要自己的平移。請在剪接點把檔案切開,分別修正兩個部分。
- 時間小於零的條目。 平移可能把第一條字幕推到零以下。請修剪這些條目,或將它們移到開頭,並檢查檔案的前幾行。
- 只有你自己在看。 大多數影片播放器都有字幕延遲設定。它只會改變該播放器中的時間,不會更動檔案本身。
- 保留原檔。 修正後的檔案請另存為新檔名。你最初的檔案就是你回頭的依據。
借助 AI 協助,由英文原文翻譯而成。
留言
還沒有留言,搶先留言吧。


