去除字幕內換行
或者貼上字幕文字
選項
一個欄位,五個選項,每個選項都有自己的頁面。重排 會把每條字幕重新按欄寬折行,既能把過長的行縮短,也可能把短行合併上來。只拆長行 只處理超過欄數的行,其餘原樣保留。均衡 保持每條字幕原有的行數,只在行之間挪動詞語,讓最長的那一行盡可能短。合併 把每條字幕並成一行。限制 對已經在行數上限內的字幕不做任何改動。這一頁會把欄位填成標題裡點名的選項,並且不列出其他選項。
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
這一頁把每一條字幕放到單獨一行。一條字幕原本有兩行或三行,文字就用一個空格接成一段,空格站在每個斷點原來的位置,而字幕保留它的起點、終點與編號。檔案的 subtitles 條數與順序都沒變,消失的只是它們內部的換行。
當一份檔案是為比你要播放的螢幕窄很多的螢幕斷的行,或當斷行落在一個詞組中間、你寧可整句連在一起時,就是這一頁。如果你想把文字斷在別的地方而不是接起來,換行頁會按欄數重排,而這一頁正好相反:它永遠以每條字幕恰好一行結束,不管那一行最後多長。
行首的破折號標記說話者變換,這一族的其他每一頁都把那些行當成不可跨越的牆。這一頁跨越它們,理由就在名字裡:兩個說話者之間的斷點就是換行,而移除換行正是你要求的事。它不會做的是悶不吭聲。執行結果會回報接起了幾個說話者斷點,所以一份三個人輪流說話的檔案,不會看起來像一個人講完了全部,而報告裡沒有任何東西說不是。
兩個較小的決定值得知道。斷點兩側都是中文、日文或韓文文字時,不插入空格,因為那些文字不用空格分詞,插進去會在句子中間留下一個洞。而空行——一條字幕在兩段文字之間夾著一行空白——對接合沒有任何貢獻,所以不會留下雙倍空格。全部在你的瀏覽器裡跑,不上傳,接受每條字幕能放多行的 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
2
00:00:05,000 --> 00:00:08,000
A single line
輸出
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there by six
2
00:00:05,000 --> 00:00:08,000
A single line
第一條出來是一行 43 欄、斷點處一個空格,第二條本來就是一行,沒有事可做。兩條都保留編號與時間,兩個區塊之間的空行是 SRT 版面的一部分而不是字幕的一部分,所以原樣回來。時間軸沒有任何移動:接起來的字幕在畫面上停留的時間完全一樣。
三個說話者在三行
輸入
1
00:00:01,000 --> 00:00:04,000
- Then we walk
- All the way home
輸出
1
00:00:01,000 --> 00:00:04,000
- Then we walk - All the way home
兩個破折號行連同破折號一起接成一行,輪替的標記還在文字裡原來的位置。執行結果回報接起了一個說話者斷點,這是對發生的事的誠實描述:檔案在畫面上不再顯示兩個人說話,而產物裡除了破折號本身沒有任何東西透露這件事。這是這一族裡唯一會做這件事的一頁,而它會做只是因為標題要求的正是這個。
一行空白,和一條中文字幕
輸入
[Script Info]
Title: join
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello\N\Nworld
Dialogue: 0,0:00:06.00,0:00:09.00,Default,,0,0,0,,你好世界\N再见朋友
輸出
[Script Info]
Title: join
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello world
Dialogue: 0,0:00:06.00,0:00:09.00,Default,,0,0,0,,你好世界再见朋友
第一條字幕的兩個詞之間夾著空行——`\N\N` 是 ASS 寫空行的方式——接合後得到 `Hello world` 而不是兩個空格,因為空行沒有加入任何文字,它的空格只會變成雙倍空隙。第二條是中文,兩半之間什麼都不加:插入空格會在句子中間留下看得見的縫。空行本身被丟掉,這是這一頁唯一移除而不是搬移的東西。
常見問題
移除換行跟字幕換行重排有什麼不同?
移除是全部接起來,所以每條字幕最後剛好一行,不管那一行多長。換行是按欄數工作,會在該寬度內產生文字需要的行數,很可能是兩三行。一頁以每條一行結束,另一頁以每行不超過你設定的寬度結束。如果寬度才是重點,用換行;如果是單行,用移除。
為什麼兩行中文接起來的地方沒有空格?
因為中文、日文與韓文不用空格分詞,在句子的兩半之間插入空格,讀者會看成一個洞。頁面會看斷點兩側的字元:兩邊都屬於那些文字時直接相接,否則放一個空格。像中文名字後面接一行英文這種混合文字,仍然會得到空格,因為那裡本來就該有空格。
標記說話者變換的破折號,接起來之後會怎樣?
留在文字裡,而接合會被計數並回報。行首的破折號表示換人在說話,把它接上一行,等於讓畫面上「兩個人在說話」的訊號消失——破折號還在,但已經不在行首。執行結果會回報接起了幾個說話者斷點,讓這件事是你被告知的,而不是你得自己發現的。
移除換行會改變檔案的 subtitles 條數嗎?
不會。頁面只在每條字幕內部工作,從不把兩條字幕接在一起,所以原本兩行的一條與一行的一條,各自都還是一條,帶著自己的時間與編號。把兩條字幕併成一條是另一種操作,對時間軸的結果不同,它住在合併字幕那頁,不在這裡。
我某條字幕裡的空行到哪去了?
被丟掉了,因為它沒有文字可貢獻,而保留它的空格會在接好的行中間留下雙倍空隙。字幕裡的空行通常是編輯留下的殘餘,不是要給觀眾看的東西,所以移除它不會失去什麼。如果一條字幕從頭到尾都是空的、完全沒有文字,它會以空字幕的形式回來,而不是被刪掉。
哪些字幕格式可以移除換行?
每條字幕能放多行的 11 種:SRT、WebVTT、ASS、SSA、SBV、SAMI、LRC、MicroDVD、TTML、JSON 與 CSV。純文字不在其中,而這次這不是限制——文字檔本來就是一行一條字幕,沒有東西可接,執行會把檔案原樣返回。跨斷點的樣式會留在接好的行上而不是被丟掉,跨斷點的卡拉 OK 計時則會被丟掉並計數。