字幕對齊到影格
或者貼上字幕文字
選項
每條字幕的邊界都會移到這個影格率下最近的影格,所以在 25 fps 下 00:00:02,010 會變成 00:00:02,000,00:00:02,030 變成 00:00:02,040。正好落在兩個影格正中的邊界向上取整,所以 00:00:02,020 會變成 00:00:02,040。這裡不做任何縮放:時間軸長度不變,只是邊界落到影格上,因此每條字幕的長度最多會前後變動半個影格。這不是檔案宣告的影格率 —— 它只決定輸出裡的邊界落在哪裡。
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
這一頁把每個字幕邊界移到你選定影格率下最近的影格。它不改變任何東西的速度:時間軸長度不變、字幕順序不變,改變的只有每個邊界落在哪裡——25 fps 下 00:00:02,010 變成 00:00:02,000,00:00:02,030 變成 00:00:02,040。因此每條字幕的長度最多向任一方向變化半個影格,這是這一頁刻意做的取捨。
它做的事,是把一個決定從播放器手裡拿回來。字幕以毫秒儲存,但多數播放器與壓制工具按影格工作,夾在兩格之間的邊界只能由繪製的人取整——而不同軟體取整的方式不同。同一份檔案在一台機器上早一格、另一台上晚一格,看起來就有一點不一樣。在這裡吸附一次,決定由你做、也只做一次:之後每個邊界都是影格邊界,每個讀這份檔案的工具都會一致。
這不是影格率轉換。把字幕從 23.976 換到 25,是用一個比例乘整條時間軸,讓字幕繼續貼合影片,那是另一組的另一頁。這一頁完全不看影片:檔案本來就正確、只是希望邊界落在影格上,就吸附;檔案相對影片是錯的,必須先改比例。
頁面上有兩個影格率欄位,因為它們回答不同的問題。一個是讀檔案用的影格率,MicroDVD 這類影格編號格式必須靠它才讀得懂;另一個是要吸附到的影格率。檔案自帶速率宣告時兩者通常相同,而填錯是安靜的——輸出仍然影格精確,只是落在沒人要的網格上。全部在這個瀏覽器分頁裡完成,不上傳,SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON 與 CSV 一視同仁。
範例
吸附到 25 fps 的影格網格
輸入
1
00:00:02,020 --> 00:00:04,030
Hello there.
2
00:00:07,010 --> 00:00:09,040
Second line.
輸出
1
00:00:02,040 --> 00:00:04,040
Hello there.
2
00:00:07,000 --> 00:00:09,040
Second line.
每一端移到最近的 40 毫秒邊界。開始的 00:00:01,010 到 00:00:02,000 變成 00:00:01,000 到 00:00:02,000,這條字幕變長 10 毫秒。
吸附到 23.976 的影格網格
輸入
1
00:00:04,000 --> 00:00:04,010
Squeezed.
2
00:00:06,010 --> 00:00:08,010
A normal one.
輸出
2
00:00:06,000 --> 00:00:08,000
A normal one.
影格不是整毫秒,所以即使是整數也會移動:兩秒整變成 2002 毫秒。這不是誤差,是那個影格率本身的網格。
影格網格上的時間軸不受影響
輸入
1
00:00:01,000 --> 00:00:03,000
Hello there.
輸出
1
00:00:01,001 --> 00:00:03,003
Hello there.
所有邊界都已經落在網格上,於是每一端都吸附到自己,輸出逐位元組返回。
常見問題
字幕吸附影格和影格率轉換有什麼本質差別?
影格率轉換改變時間軸有多長,吸附只改變邊界落在這條時間軸上的位置。24 轉 25 會把每個時間戳乘 0.96,讓兩秒的字幕變成 1.92 秒;吸附把這兩秒仍然留作兩秒,只把兩端各移到最近的影格,各自不超過半格。
把字幕吸附到影格後,能對上另一種影格率的影片嗎?
不能。這一頁從不看影片,也不改變時間軸長度,所以因影片影格率不同而錯位的檔案,吸附之後錯得一樣多。要先用影格率轉換頁算出並套用比例,再在交付工具需要影格邊界時做吸附。
吸附到影格時,單條字幕的長度最多會變多少?
每個邊界最多半格,整條最多一格,絕不會更多。25 fps 下最多 40 毫秒,每個邊界 20 毫秒。23.976 或 29.97 下每個影格不是整毫秒,即使首尾都是整數也會移動:兩秒的字幕會變成 2002 毫秒。
同一份字幕連續吸附兩次,第二次為什麼沒有變化?
因為一旦所有邊界都落在影格上,離它最近的影格就是它自己,第二次執行會逐位元組返回同一份檔案。這也讓吸附可以安全地留在批次處理裡;反過來,若第二次仍有變化,說明第一次沒有吸附完整。
吸附到影格時,字幕條會被刪掉嗎?
只有當它短於半格時才會:兩端取整到同一個影格,已經沒有可寫的字幕。25 fps 下即短於 20 毫秒,現實中幾乎不存在。頁面會統計刪掉的數量,所以結果區是要看的地方,而不是下載下來的檔案。
吸附用的影格率該填檔案自己宣告的那一個嗎?
不要想當然。宣告說的是「如何讀取檔案裡的影格編號」,吸附影格率說的是「輸出邊界落在哪個網格」,多數交付裡兩者相同。當你要把檔案交給另一種影格率的工具時它們會不同,此時照填宣告速率就是那種安靜的錯誤:輸出仍影格精確,只是落在沒人要求的網格上。