UltKit

字幕格式轉換

把字幕檔轉成播放器、剪輯軟體或上傳表單要求的格式。轉換器可讀取 SRT、VTT、ASS、SBV、TTML 及十多種其他字幕類型,以目標格式的語法改寫時間碼,並可在轉換時同步校正時間、清理或簡化文字。

字幕轉檔

或將SRT, VTT, ASS … 檔案拖曳到這裡 ·

每個檔案最大 95 MB· 最多 20 個檔案· 30 分鐘後刪除

輸出

檔案會在我們的伺服器上處理,並於 30 分鐘後刪除。

使用方式

  1. 1

    上傳字幕檔

    最多可加入 20 個檔案,每個檔案不超過 95 MB,支援 SRT、VTT、ASS、SSA、SBV、SUB、TTML、DFXP、XML、SMI、LRC 或 TXT。每行一句字幕的純文字逐字稿也可以。

  2. 2

    選擇輸出格式並修正時間軸

    在轉換為選擇格式,預設為 SRT。如果字幕出現過早、過晚或逐漸不同步,請開啟進階設定,使用平移時間軸或兩個影格率欄位。

  3. 3

    轉換並儲存

    按下轉換為 SRT(或你選擇的其他格式),再下載各個檔案或 ZIP。輸出一律為 UTF-8,所有上傳的檔案會在 30 分鐘後刪除。

解答

字幕轉換器會改變什麼?

文字內容不變。轉換器會改寫檔案標頭、時間碼語法和樣式標記,讓其他程式能讀取字幕,也可以一次平移所有時間。

SRT、VTT、ASS 等字幕檔案格式

  • .srt
  • .vtt
  • .ass
  • .ssa
  • .sbv
  • .ttml
  • .dfxp
  • .sub
  • .smi
  • .lrc
  • .xml
  • .txt

SRT 的名稱來自 SubRip,這是 2000 年前後用來擷取 DVD 字幕的 Windows 程式。它是一份編號的字幕清單,每則含開始與結束時間,以及一到兩行文字,因此幾乎所有播放器、編輯器和串流上傳表單都能讀取。WebVTT 是從 SRT 發展出來、給網頁使用的格式:由 W3C 制定,以 WEBVTT 一詞開頭,並可用 CSS 設定字幕的位置或樣式。TTML 是 W3C 的 XML 字幕格式,於 2010 年成為 Recommendation;DFXP 是它較早的名稱,串流服務使用的是它的子規格。

SubStation Alpha(SSA)及其後繼的 Advanced SubStation Alpha(ASS)源自字幕組。ASS 檔案有一份樣式表,包含字型、顏色、外框和邊界,每一行還可以覆寫這些設定,因此標示文字和歌曲可以放在畫面任何位置。常用的 ASS 編輯器 Aegisub 預設就儲存這種格式。SBV 是 YouTube 的簡易匯出格式;SMI 是 Microsoft 的 SAMI,LRC 存放含逐行時間的歌詞,TXT 則是純文字。

各輸出格式如何寫出從 1 分 23.456 秒開始的同一則字幕
格式時間碼標頭樣式
SRT`00:01:23,456 --> 00:01:25,789`無,字幕有編號<i>、<b>、<u> 和 <font> 標籤
WebVTT`00:01:23.456 --> 00:01:25.789`第一行為 `WEBVTT`字幕設定與 CSS 類別
ASS / SSA`0:01:23.45,0:01:25.78`[Script Info] 與 [V4+ Styles]完整樣式表與逐行覆寫
SBV`0:01:23.456,0:01:25.789`無無
TTML`begin="00:01:23.456"`含命名空間的 XML 文件XML 中的樣式屬性
TXT勾選**包含時間碼**時為 `[00:01:23]`,否則沒有無無

平移字幕時間軸與轉換影格率

4.3%25 fps 的 PAL 版本比 23.976 fps 的原版播放速度快的幅度

一部 120 分鐘的電影會累積將近 5 分鐘的差距,所以為某一版本製作的字幕,放在另一版本上會逐漸不同步。

平移時間軸會把每則字幕移動相同的量,範圍從 −3,600 到 +3,600 秒,最小單位為毫秒。文字比語音早出現時用正數,文字落後時用負數,例如 −1.5。若開頭和結尾的偏移量相同,用這個就能修正,這通常是片頭不同或被剪掉製片廠標誌造成的。

影格率這一組處理另一種情況。在原始影格率選擇字幕原本對應的影格率,在目標影格率選擇你影片的影格率;可選 23.976、24、25、29.97 和 30 fps。每個時間碼都會依比例縮放,歐洲 PAL 版與北美 NTSC 版的同一部電影就是這樣取得吻合的字幕。若不確定方向,可比對影片接近結尾的一句:若字幕太晚出現,代表字幕的影格率比影片低。

其餘欄位處理文字。輸入編碼可正確讀取舊式檔案;移除格式標籤會清除 <i>、<b>、<font> 和 {\an8} 這類代碼。輸出為 TXT 時,包含時間碼會在每行前加上時間,將各行合併為段落會把斷開的行合併成通順的句子,這是 SRT 轉 TXT 逐字稿適用的設定。輸出為 ASS 或 SSA 時,字型(預設 Arial)和字型大小(48,以高 1080 像素的影片為基準)決定預設樣式。

ASS 轉 SRT 後樣式無法復原

將 ASS 轉成 SRT、VTT 或 TXT 會保留文字與時間,但會丟失位置、顏色、卡拉 OK 計時和繪製的標示。若之後可能重新設計字幕樣式,請保留原始 ASS 檔案;用 SRT 轉 ASS 轉回去只會套用一種預設樣式。

字幕轉檔常見錯誤與解決方法

  • 載入檔案後,播放器沒有顯示字幕。

    讓字幕檔名與影片檔名完全相同,只換副檔名,例如 movie.mp4 和 movie.srt,並確認副檔名與格式相符;改名為 .srt 的 VTT 時間碼中仍然是句點。

  • 在串流上傳時,所有字幕都早了約一秒。

    將平移時間軸設為正數,例如 1,再轉換一次。請以第一句說話的字幕測量偏移,不要用音樂提示。

  • TXT 逐字稿失去了字幕原本的分行結構。

    將各行合併為段落已開啟,會把各行合併成連續的句子。關閉它即可維持每行一句字幕,或開啟包含時間碼標出每則字幕的開始處。

  • TXT 轉換後變成一則超長字幕。

    逐字稿只有一個段落。請讓每句字幕獨立一行,最好不超過約 42 個字元,再設定每行秒數。

字幕格式轉換常見問題

YouTube 接受哪種字幕格式?

YouTube Studio 支援 SRT、WebVTT、SBV、TTML 和數種廣播格式,所以單為 YouTube 通常不需要轉檔。SBV 是你在 YouTube 編輯字幕後下載時可選的格式之一;要載入影片剪輯軟體前,請先轉成 SRT。

HTML5 影片字幕軌需要什麼格式?

WebVTT。瀏覽器的 <track> 元素只讀取 VTT 檔案,所以放在網站 MP4 旁的 SRT 會被忽略。SRT 轉 VTT 會加上 WEBVTT 標頭,並把小數逗號換成句點。

轉換後顏色、字型和位置會保留嗎?

只有 ASS 與 SSA 之間可以完整保留。SRT、VTT、SBV 和 TXT 沒有地方存放逐行字型、卡拉 OK 特效或畫面位置,所以動漫字幕組的字幕轉成 SRT 後會保留文字與時間,但樣式會消失。基本的斜體和粗體標籤會保留到 SRT 和 VTT,除非你勾選移除格式標籤。

字幕越來越不同步,該怎麼修正?

固定的延遲用平移時間軸修正;延遲越來越大,代表字幕檔是為影格率不同的版本製作的。請將原始影格率設為字幕原本對應的影格率,目標影格率設為你的影片影格率,最常見的是 23.976 轉 25 或相反。

可以把逐字稿轉成有時間軸的字幕嗎?

可以。上傳每行一句字幕的 TXT 並轉換為 SRT;每一行會依序套用每行秒數設定的長度。時間不會與語音完全吻合,請用 Subtitle Edit 或 Aegisub 等編輯器微調。可從 TXT 轉 SRT 開始。

為什麼帶重音的字母會變成問號或奇怪的符號?

檔案是以較舊的字碼頁儲存的,例如俄文的 Windows-1251 或阿拉伯文的 Windows-1256,卻被當成 UTF-8 讀取。請在輸入編碼選擇正確的編碼後再轉換一次;輸出會寫成 UTF-8,現代播放器就能正確顯示。

可以轉換 DVD 或藍光的圖像式字幕嗎?

無法當成文字處理。VobSub(.sub 搭配 .idx)和藍光 PGS 軌道把每句字幕存成圖片,必須先做光學字元辨識。本工具讀取的 .sub 檔案是文字型的 MicroDVD 檔案。

所有字幕轉換工具

請選擇對方要求的確切規格。下方每個頁面都是同一個工具,只是預設值不同。