跳至主要內容
SubtitleMatrix

字幕區間裁切

時間軸依時間裁切與分割
或者貼上字幕文字

選項

在這個時刻之前已經顯示的內容都會被去掉。更早開始、但此刻仍在畫面上的字幕會保留,並在邊界處截斷。留空表示視窗從檔案開頭算起。

從這個時刻起才開始顯示的內容都會被去掉,跨過它的字幕會被截在這一點。這個時刻本身不屬於視窗:正好從這一刻開始的字幕歸入下一段。留空表示視窗持續到檔案結尾。

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

這一頁只保留字幕檔落在某個時間視窗內的部分,其餘移除。給它開始、結束或兩者都給,它會把檔案走一遍:完全在視窗外的一律丟棄,跨在邊界上的字幕在邊界處裁切,完全在視窗內的原樣通過。

判據是重疊,而不是「開始時間在哪」。一條從四秒開始、五秒仍在螢幕上的字幕屬於五到十秒的視窗,所以留下——開始時間被拉到正好五秒。這就是裁切檔案與移動一段時間軸的差別:按開始判斷的頁面會刪掉它,順手帶走一句對白;按結束判斷的頁面則會留下還沒開始的字幕。

視窗的關閉瞬間不包含在內。正好在視窗結束處開始的字幕屬於影片的下一段,不屬於這一段;正好在視窗開始處結束的字幕則已經離屏。半開邊界聽起來像吹毛求疵,直到你把同一份檔案的兩個相鄰區間各裁一次,發現同一行出現在兩份產物裡。

一切都在瀏覽器分頁裡完成:檔案在本機讀取、裁切、寫回,一個位元組也不上傳。SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON 與 CSV 都接受;MicroDVD 需要在欄位裡填影格率,因為它用影格編號計時。

範例

從檔案中段裁出十秒視窗

輸入

1
00:00:01,000 --> 00:00:02,500
Before the window.

2
00:00:04,000 --> 00:00:06,000
Crosses the start.

3
00:00:07,000 --> 00:00:08,000
Fully inside.

4
00:00:09,000 --> 00:00:11,500
Crosses the end.

5
00:00:14,000 --> 00:00:15,000
After the window.

輸出

2
00:00:05,000 --> 00:00:06,000
Crosses the start.

3
00:00:07,000 --> 00:00:08,000
Fully inside.

4
00:00:09,000 --> 00:00:10,000
Crosses the end.

五條字幕、四種結果、一次處理。視窗打開時第 1 條已經過去、第 5 條還沒到,兩條都被丟棄。第 2 條從四秒開始,但五秒時還在說話,所以留下、開始被拉到 5000 毫秒。第 4 條同樣失去最後 1.5 秒。第 3 條從頭到尾沒被碰過。

只給開始邊界:剪掉片頭

輸入

1
00:00:00,500 --> 00:00:02,000
Intro card.

2
00:00:02,500 --> 00:00:04,000
Still talking over the logo.

3
00:00:05,000 --> 00:00:06,000
First line of the programme.

輸出

2
00:00:03,000 --> 00:00:04,000
Still talking over the logo.

3
00:00:05,000 --> 00:00:06,000
First line of the programme.

結束欄位留空,表示沒有關閉邊界——視窗一直到檔案結尾。片頭卡被丟棄,跨過三秒那一行在該處被裁切。空欄位不是零:在結束欄位填 0 會得到一個空視窗,頁面會說什麼都沒做。

比檔案還寬的視窗

輸入

1
00:00:01,000 --> 00:00:02,000
Short.

2
00:00:03,000 --> 00:00:04,000
Also short.

輸出

1
00:00:01,000 --> 00:00:02,000
Short.

2
00:00:03,000 --> 00:00:04,000
Also short.

兩條字幕都在裡面,所以逐位元組返回。沒有任何東西被移到視窗開始處——即使視窗從零點打開,一秒處的字幕仍在一秒。裁切只移除外面的東西,不移動裡面的東西。

常見問題

字幕在視窗開始前就在螢幕上,區間裁切後會怎樣?

會保留,開始時間被拉到視窗開始的那一刻。頁面套用的判據是重疊:只要字幕有任何一部分落在視窗內,那一部分就屬於結果。這是裁切檔案與平移一段時間軸之間最重要的差別,也是跨過邊界的一句對白不會在切口處消失的原因。

區間裁切會重新編號嗎?

不會。字幕保留它在檔案裡的原編號,所以一段從第 2 條開始的保留內容仍然從編號 2 開始,編號裡的空缺顯示被移除了什麼。重新編號是對你沒要求過的行另做改動,也會讓你需要核對某行時更難把裁切後的檔案與原件對齊。

剛好在視窗開始處結束的字幕,為什麼被區間裁切去掉?

因為視窗打開時它已經離屏——那個邊界屬於後面的視窗。另一端規則相同:正好在視窗關閉處開始的字幕屬於下一段。兩個邊界都是半開的,這才防止同一份檔案的兩個相鄰區間都聲稱擁有落在共享邊界上的那條字幕。

區間裁切的兩個欄位可以只填一個嗎?

可以,這也是這一頁常見的用法。開始欄位留空表示視窗從檔案開頭起;結束欄位留空表示一直到結尾。只填開始欄位會剪掉片頭,只填結束欄位會剪掉片尾。兩個都空,或結束時刻不晚於開始時刻時,頁面會回報什麼都沒做,而不是返回一份空檔案。

裁切掉視窗外的內容會記為有損嗎?

不會。移除視窗之外的內容正是這一頁要做的事,所以不按損壞回報;結果行會告訴你丟棄了多少條、在邊界處裁切了多少條。這與那些因為別的原因順帶丟字幕的頁面不同——在那裡,有損說明是移除唯一會被提到的地方。

哪些格式支援區間裁切,為什麼排除 LRC?

SRT、WebVTT、ASS、SSA、SBV、SAMI、MicroDVD、TTML、JSON 與 CSV。純文字與 LRC 不接受,因為裁切要讀寫每條字幕的兩端,而這兩種格式不在檔案裡保存結束時間——由下一條開始推導出的結束時間又會被寫成下一條的開始,輸出與輸入逐位元組相同,頁面就在說謊。

相關工具