跳至主要內容
SubtitleMatrix

23.976轉29.97影格修正

時間軸影格率轉換
或者貼上字幕文字

選項

時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。

你要拿字幕搭配的那個版本的影格率 —— 也就是你實際要播放的影片。套用的係數是第一個欄位除以這一個,所以 24 轉 25 得到 0.96:影片在 PAL 上快 4%,100 分鐘的片子正好裝進 96 分鐘的帶子。兩個欄位填反了,整條時間軸會朝錯誤的方向位移同樣的量。

這一頁把時間軸按 23.976 fps 計數的字幕檔,放上 29.97 的時間軸。每個時間戳乘上 0.8——正好五分之四——所以檔案短了五分之一:一分鐘處的字幕變成四十八秒,一集二十四分鐘、字幕卻宣稱三十分鐘的節目,會回到二十四分鐘。兩個欄位已填好;如果你的檔案是按別的速率計數,再改。

錯誤出在把影格編號換成秒的那道算術。如果工具有一串屬於 29.97 時間軸的影格編號,卻拿 23.976 去除,它產生的每一秒都大了四分之一:29.97 除以 23.976 是 1.25,整條時間軸被拉長四分之一,字幕愈來愈晚,影片愈到後面落後愈多。乘上 0.8 就是把同一個錯誤除回去。

這一頁有一件事絕對不能拿來做,而它也是這一組最容易犯的錯。裝進 NTSC 訊號的影片會套用 3:2 pulldown——重複畫面來填滿 29.97 訊號——而 pulldown 完全不改變播放長度。所以「我的影片是 29.97 而且有 pulldown」不是轉換的理由:按那支影片對時的字幕本來就正確,乘上 0.8 會砍掉五分之一。這一頁是給影格編號按錯速率計數的檔案,不是給剛好裝在 29.97 容器裡的檔案。

這一對好處理的地方在於 0.8 是精確值。兩個速率都屬於 NTSC 家族、都帶著同樣的除以 1001,所以 1001 相消,23.976 除以 29.97 就是 24000 除以 30000——五分之四,沒有四捨五入、沒有餘數。每條字幕在螢幕上的時間少了五分之一,每行的閱讀速度因此提高 25%。檔案不會上傳,整季可以一次排隊跑完——SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON 與 CSV 都按真實格式讀取。

範例

把 0.8 套用在二十四分鐘的劇集上

輸入

1
00:00:01,000 --> 00:00:03,000
Hello there.

2
00:01:00,000 --> 00:01:02,000
One minute in.

輸出

1
00:00:00,800 --> 00:00:02,400
Hello there.

2
00:00:48,000 --> 00:00:49,600
One minute in.

最後一個時間戳從 00:30:00,000 移到 00:24:00,000。每一行仍在,只是距離短了五分之一,所以整集約在二十四分鐘處結束。

同一個比例,被一對參考點量出來

輸入

1
00:10:00,000 --> 00:10:02,000
Ten minutes in.

2
00:30:00,000 --> 00:30:02,000
Half an hour in.

輸出

1
00:08:00,000 --> 00:08:01,600
Ten minutes in.

2
00:24:00,000 --> 00:24:01,600
Half an hour in.

如果檔案裡有兩個參考時刻,這一頁會解出相同的比例:兩個時間戳都以同樣的比例向零點收攏,零點因此不動。

較短的檔案:十秒處

輸入

{1}{1}23.976
{240}{288}Hello

輸出

{1}{1}29.97
{240}{288}Hello

十秒落到八秒,而不是六秒。比例是乘上去的,不是從尾部慢慢加上去。

常見問題

23.976 轉 29.97 的比例為什麼正好是 0.8?

因為兩個速率都是 NTSC 速率,都是某個整數除以 1001:23.976 是 24000/1001、29.97 是 30000/1001。兩者相除,1001 在兩邊相消,剩下 24000 除以 30000,也就是五分之四。所以這裡沒有任何取整或近似——一分鐘處的字幕精確落在四十八秒。

23.976 轉 29.97 能修好套過 3:2 pulldown 的影片嗎?

不能,而這正是這一頁要點名的陷阱。Pulldown 用重複影格填滿 29.97 訊號,播放長度完全不變,所以按去交錯後的影片對時的字幕本來就正確——轉換會砍掉時間軸的五分之一,把正確的檔案弄錯。這一頁是給影格編號屬於 29.97 時間軸、卻被 23.976 除過的計時。

字幕晚了四分之一而且愈來愈晚,是 23.976 轉 29.97 嗎?

檢查晚的量是不是已過時間的四分之一。十分鐘處晚兩分鐘、半小時處晚六分鐘、兩小時的影片晚半小時,就是這一對。這一組的近親用大小就分得開:0.95904 是 4% 的誤差,1.0427094 是 4.271%,而二的倍數會讓檔案長度加倍。

23.976 轉 29.97 可以把 24 與 30 填進欄位嗎?

對這一對可以,結果完全相同——24 除以 30 是五分之四,和 23.976 除以 29.97 一樣,因為共同的除以 1001 兩邊都會相消。這是這一對的性質,不是整組的性質:在電影轉 PAL 那一頁,檔案其實是 23.976 卻填 24 與 25,會留下一小時 3.5 秒的誤差。

23.976 轉 29.97 後每條字幕少五分之一,會撞破閱讀速度上限嗎?

值得檢查,因為字不會跟著變短:原本舒服地落在每秒字元數上限內的一行,可能被 25% 的增幅推過去。站上的無障礙工具會對照標準設的門檻量閱讀速度,那是該看的數字,而不是「字幕好像變趕了」的感覺。

該用 23.976 轉 29.97 把電影字幕放上 NTSC DVD 嗎?

不該。NTSC 碟片上的電影以 23.976 儲存,播放時由播放器套用 pulldown,所以按影片對時的字幕完全不用改,0.8 會毀了它。如果你的檔案是按那部影片的 PAL 版本對時、要回到碟片,組合是 25 轉 23.976、比例 1.0427094——往另一個方向的小修正。

相關工具