字幕換行均衡
或者貼上字幕文字
選項
一個欄位,五個選項,每個選項都有自己的頁面。重排 會把每條字幕重新按欄寬折行,既能把過長的行縮短,也可能把短行合併上來。只拆長行 只處理超過欄數的行,其餘原樣保留。均衡 保持每條字幕原有的行數,只在行之間挪動詞語,讓最長的那一行盡可能短。合併 把每條字幕並成一行。限制 對已經在行數上限內的字幕不做任何改動。這一頁會把欄位填成標題裡點名的選項,並且不列出其他選項。
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
這一頁把一條字幕已經有的行數平均掉。它完全保留檔案寫出的行數,只在這些行之間搬移詞,直到最長的那一行縮到最短。一份以 63 欄與 5 欄兩行進來的字幕,會以 33 欄與 35 欄兩行出去;而旁邊本來就平均的那條字幕,一個位元組都不會動。
這就是它與換行、拆分兩頁的分界。換行頁按你設定的欄數工作,可以自由增減行數;拆分頁只碰超過欄數的行。這裡行數根本不是輸入——它是從檔案讀出來的事實,是你或你的播放器已經定好的——唯一會變的是詞落在這個行數裡的哪個位置。
頁面遵循的規則是「最長的一行要盡可能短」,這跟「把詞平均分配」不是同一件事。詞有長有短,把詞數平均分給兩行,得到的是一長一短。頁面問的是:在這條字幕仍有這麼多行的前提下,行可以窄到什麼程度——然後照那個寬度排。實務上兩行看起來會差不多長,而那是你在螢幕上真正會注意到的東西。
有些字幕會被完全放著不動,而頁面會用「什麼都沒回報」來說明,而不是宣稱執行成功。只有一行的字幕沒有第二行可以搬詞。每一行都只有一個詞的字幕,已經是這麼多行能有的最短。以破折號開頭的行標記的是說話者變換:那些區塊彼此隔開,因為把一個人的半句話搬到另一個人的行上,不是平均,是搞混。全部都在你的瀏覽器裡跑,不上傳,接受每條字幕能放多行的 11 種格式:SRT、WebVTT、ASS、SSA、SBV、SAMI、LRC、MicroDVD、TTML、JSON 與 CSV。
範例
第二行很短、第一行很長
輸入
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there by six
or wait for the later one.
輸出
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there
by six or wait for the later one.
第一行 43 欄、第二行 26 欄,所以頁面把 `by six` 從第一行搬到第二行就停了:36 欄與 33 欄是這對行能被拉到的最近距離,再推下去第二行反而會變成較長的那一行。字幕仍是兩行,詞數與順序都沒變,時間與編號也沒動。
本來就平均的一條字幕
輸入
1
00:00:01,000 --> 00:00:04,000
The train leaves at six
in the evening Seven.
輸出
1
00:00:01,000 --> 00:00:04,000
The train leaves at six
in the evening Seven.
23 欄與 21 欄,已經是這對行最平均的狀態,所以頁面無事可做,檔案逐位元組回來。什麼都不回報也是對的,因為一次沒找到工作的執行,不是一次做了事的執行。這件事值得看過一次:一個硬要重寫的工具,會冒著改壞一份本來就正確的檔案的風險,而報告裡不會有任何東西提醒你。
一行中文對上一行英文
輸入
WEBVTT
00:00:01.000 --> 00:00:04.000
你好
Good morning to you everyone
輸出
WEBVTT
00:00:01.000 --> 00:00:04.000
你好 Good morning
to you everyone
中文那行是兩個字,也就是 4 欄,對上 28 欄的英文行——沒有讀者會說這樣平均,頁面也同意。它把 `Good morning` 拉上來,讓兩行成為 17 欄與 15 欄。按字數而不是按欄數計算,會把中文行當成兩個單位、幾乎什麼都不搬,留下這一頁本來要修的不平均。要被平均的是兩行在螢幕上的樣子,不是字數。
常見問題
字幕換行平衡到底改了什麼?
只改詞在字幕裡的位置,其他都不動。行數不變、詞數與順序不變,起止時間與字幕編號都是檔案自己的。當行數對你的播放器或台內規範已經正確、問題只在某一行比隔壁長很多時,就是這一頁。
為什麼平衡不等於把詞平均分給每一行?
因為詞的長度不一樣,詞數平均會得到不均勻的外觀。一行放 `I`、一行放 `internationalization`,各自都只有一個詞,其中一行卻有 20 欄寬。頁面問的是「在仍有這麼多行的前提下,行可以窄到什麼程度」,再照那個寬度排,所以兩行出來是接近同樣的長度,而不是接近同樣的詞數。
平衡換行會改變一條字幕的行數嗎?
不會,這正是這一頁的重點。行數從字幕讀進來,當成固定的限制使用,所以兩行的字幕回來還是兩行,三行的還是三行。如果你要的是不同的行數,換行頁按你給的欄數工作,可以多出或減少行;限制每條行數的頁面則是按上限工作。
為什麼我的破折號行沒有被平衡?
因為行首的破折號標記說話者變換,兩個區塊是各自平衡,不是互相比較。14 欄與 18 欄的兩行就維持 14 與 18:把一個人的部分台詞搬到另一個人的行上,會讓兩個人的對白擠在同一行,正好違背那些破折號存在的目的。只有一行的那個區塊,內部沒有東西可搬。
只有一行、或每行只有一個詞的字幕會怎樣?
原樣返回,而且這次執行不會為它回報任何東西。一行沒有第二行可以搬詞。每行各只有一個詞的字幕,已經是這麼多行能有的最短,因為詞不能被切開。兩種情況下檔案都直接通過、沒有被重寫,報告維持空白,而不是把它算成一條處理過的字幕。
哪些格式的換行可以平衡?
每條字幕能放多行的 11 種:SRT、WebVTT、ASS、SSA、SBV、SAMI、LRC、MicroDVD、TTML、JSON 與 CSV。純文字被排除,因為那裡一行文字就是一條字幕,每條剛好只有一行,平衡永遠做不了事。這 11 種是按內容讀出來的,不是看副檔名,執行過程中不上傳任何東西。