清除字幕全部格式
或者貼上字幕文字
選項
一個欄位,七個選項,每個選項都有自己的頁面。斜體、粗體、底線和顏色只去掉對應的那一種區間,行內其他樣式不動。全部 會去掉工具建模的所有區間 —— 那四種加上卡拉 OK 計時 —— 文字裡的其他內容保持原樣。HTML 做同樣的事,並額外清掉解析時因為不被建模而留在文字裡的角括號標記,例如 VTT 的 <v Bob> 說話者標籤和 <c.className>。ASS 則改為清掉覆寫區塊,即解析時未能辨識的 {...} 代碼,例如 {\fad(500,500)}。這一頁會把欄位填成標題裡點名的選項,並且不列出其他選項。
時間以哪個影格率計算。在格式頁面上,這是 MicroDVD 需要的值,因為它把時間存成影格編號。在影格率頁面上,它是檔案當初對應的速率 —— 字幕是照這個版本製作的 —— 而頁面的第二個欄位填你要搭配的影片速率。常見的有 23.976、24、25、29.97、30、50、59.94 和 60。填錯會讓整條時間軸位移;在影格率頁面上,位移是按比例發生,而不是固定的量。
這一頁移除字幕檔帶有的每一段樣式範圍——斜體、粗體、底線、顏色與卡拉OK計時——文字、換行與時間碼則留在原本的位置。當一份檔案的樣式是被繼承來的、不是你選的,而你要的是單純的定時文字時,就是跑這一輪。
這五種一起移除,因為它們是同一個決定。卡拉OK計時是刻意納入的:卡拉OK範圍不是文字,而是逐字的時間指示;一份拿掉了強調、卻還帶著卡拉OK計時的字幕檔,等於留下了樣式裡最不容易攜帶的那一部分。跑完之後,檔案只說誰在什麼時候說了什麼,其他一概不留。
有兩樣東西不動,而兩者都值得知道,因為它們看起來像樣式。一行在畫面上的位置屬於整條字幕事件,而不是文字上的某一段範圍,所以設定過位置的字幕跑完還留在原位;需要清掉位置的檔案是另一輪。而像 `<v Bob>` 這樣的 WebVTT 說話者標籤根本不是樣式——它說的是這句話是誰說的,移除它等於刪內容。把這兩樣掃掉的頁面,標題裡就寫明了。
檔案裡沒有的東西不會被弄丟:一份本來就沒有樣式的純 SRT 檔會逐位元組回來。檔案不上傳,什麼都不會離開瀏覽器分頁,所以不能送去伺服器的素材——法務、醫療、尚未發行的——都可以在這裡清理。
範例
一行上四種樣式
輸入
1
00:00:01,000 --> 00:00:02,000
<b>CHAPTER ONE</b>
2
00:00:03,000 --> 00:00:04,000
<i>A voice off screen.</i> The <u>door</u> is <font color="red">open</font>.
輸出
1
00:00:01,000 --> 00:00:02,000
CHAPTER ONE
2
00:00:03,000 --> 00:00:04,000
A voice off screen. The door is open.
四種樣式一起走,文字完全照當初寫的樣子留下——包括第一條字幕裡的大寫,因為這一頁從不碰大小寫。剩下的只有文字與時間碼,什麼都不多,而這正是多數交付規範真正要的形狀。
斜體旁邊的說話者標籤與 class 標籤
輸入
WEBVTT
00:00:01.000 --> 00:00:02.000
<v Bob><i>Hello</i> there.
00:00:03.000 --> 00:00:04.000
<c.yellow>Careful.</c>
輸出
WEBVTT
00:00:01.000 --> 00:00:02.000
<v Bob>Hello there.
00:00:03.000 --> 00:00:04.000
<c.yellow>Careful.</c>
斜體走,`<v Bob>` 與 `<c.yellow>` 留著。說話者標籤說的是誰在說話,class 標籤指的是文字所屬的群組;兩者都不是強調,這一頁也不會刪內容。把那些掃掉是另一輪,標題裡寫明了。
ASS 檔裡的卡拉OK計時
輸入
[Script Info]
Title: karaoke
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\k50}he{\k50}llo {\b1}there{\b0}
輸出
[Script Info]
Title: karaoke
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,hello there
兩段卡拉OK範圍與那對粗體一起走,音節變成普通文字。卡拉OK計時是最容易在轉檔時弄丟的樣式——多數格式沒有地方放它——所以正準備轉出去的檔案,在這一頁先移除,還看得到發生了什麼。
常見問題
這一頁移除哪幾種樣式?
五種:斜體、粗體、底線、顏色與卡拉OK計時。它們都是字幕檔能覆蓋在文字某一段上的行內範圍,而頁面按檔案實際上是什麼格式來讀,所以不管檔案把樣式寫成標籤、覆寫碼還是 span,同一輪都成立。樣式表裡具名的樣式不在這份清單上,也不會被移除——這一頁動的是文字上的範圍。
移除全部樣式會改動文字或時間嗎?
不會。只有文字周圍的標記被重寫,所以字元會逐位元組回來,每條字幕的起止精確到毫秒都保留,字幕順序也是檔案自己的。中間有換行的字幕跑完還是有那個換行,因為換行在哪裡屬於字幕本身,不屬於它的樣式。
為什麼設定過位置的字幕跑完還留在原位?
因為一行在畫面上的位置屬於整條事件,而不是文字上的某一段範圍,而這一頁只移除範圍。置中的字幕或畫面裡的告示牌會保留它的位置,這通常正是你要的:位置常常在做真正的工作,而一份移除過強調的檔案,不一定該被重新排版。連位置一起清掉的,是「移除 ASS 覆寫標記」那一頁。
為什麼我的 WebVTT 檔還留著說話者標籤?
因為說話者標籤是內容,不是樣式。`<v Bob>` 說的是 Bob 在說話,讀者失去它就失去檔案說過的其中一部分——跟 class 標籤被留下是同一個理由,它帶的名字由樣式表解析,而不是由檔案本身。這一頁移除的是強調,不是資訊。如果你真的要掃掉那些標籤,那是「移除 HTML 標籤」那一頁。
這一頁會動 ASS 樣式表裡的具名樣式嗎?
不會。ASS 檔維護一張具名樣式表,每條字幕指向其中一個,而那張表跟這一頁移除的行內範圍是兩件事。樣式是粗體的字幕跑完看起來還是粗體,因為粗體屬於樣式,不屬於文字。清理樣式表是另一件工作,這一頁不做。
檔案本來就沒有任何樣式,還值得跑嗎?
跑,成本是零,而檔案會逐位元組回來,把問題結掉,而不是留著懸在那裡。純 SRT 檔是常見情況,而一輪回報「沒有樣式可移除」是在回答一份真的沒有樣式的檔案,不是哪裡出錯了。下載照樣會產生。