跳至主要內容
SubtitleMatrix

SRT 字幕格式

格式轉換SubRip(SRT)

這種格式能表達什麼

文字樣式
僅純文字
畫面定位
否
卡拉 OK 計時
否
字幕段落內換行
是
時間軸
每條字幕都有開始與結束時間
時間精確度
1 毫秒
時間以影格編號儲存
否
由右至左的文字
是

範例

一份典型的 SRT 檔案,以及本站從中讀出什麼

檔案

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

從中讀出了什麼

3 cues, 4 lines of text

  00:00:01,000 → 00:00:03,500
    Hello there.
  00:00:03,500 → 00:00:06,000
    Whispering now.   [italic ×1]
    And a second line.
  00:00:06,000 → 00:00:09,250
    Bold statement.   [bold ×1]

Outside the cues:
  nothing — SRT stores cues and nothing else

右邊不是轉換後的檔案,而是本站從左邊讀出的內容,也是這份檔案後續每次轉換的起點。

一份格式不規則的 SRT 檔案,以及仍然讀出什麼

檔案

# exported by some tool

5
00:00:10,000 --> 00:00:12,000
Second in the file, first in time.

2
00:00:02,000 --> 00:00:05,000
First in time, second in the file.

00:00:06,000 --> 00:00:09,500
No index line at all.

# keep this comment
3
00:00:12,000 --> 00:00:14,500 X1:100 X2:200 Y1:300 Y2:400
Positioned cue.

4
00:00:20,000 --> 00:00:19,000
Ends before it starts.

6
00:00:28,000 --> 00:00:33,000
Long one.

7
00:00:31,000 --> 00:00:32,000
Inside the long one.

從中讀出了什麼

7 cues, 7 lines of text

  00:00:02,000 → 00:00:05,000
    First in time, second in the file.
  00:00:06,000 → 00:00:09,500
    No index line at all.
  00:00:10,000 → 00:00:12,000
    Second in the file, first in time.
  00:00:12,000 → 00:00:14,500
    Positioned cue.
  00:00:20,000 → 00:00:20,001
    Ends before it starts.
  00:00:28,000 → 00:00:33,000
    Long one.
  00:00:31,000 → 00:00:32,000
    Inside the long one.

Outside the cues:
  nothing — SRT stores cues and nothing else
  except 1 cue that had a comment line above it — that line stays attached to its cue

Reported while reading — repaired or skipped, never silently:
  1 × blocks with no readable timecode (they were skipped)
  1 × cues using SRT's non-standard X1/Y1 screen coordinate extensions
  1 × cues whose end time was not after their start time (they were given a 1ms duration)

真實檔案常帶 BOM、Windows 換行、時間碼前的雜訊列,或根本讀不出的時間碼;解析器不拋出錯誤,讀不懂的部分會如實回報。

把 SubRip (SRT) 轉成其他格式

每一個都完全在你的瀏覽器裡執行。標籤標明了那個方向要付出什麼代價,打開之前就能看到。

SRT 轉 CSV:文字與時間碼都不會遺失,可直接下載結果;檔案不上傳,支援一次拖入多個。

這個方向不會遺失內容 —— 來源格式的每一項特性在目標格式裡都有地方可去。

SRT 轉 JSON:這一方向沒有損失,轉出的內容與原檔一致;全程本機處理,不上傳,可批次轉換。

這個方向不會遺失內容 —— 來源格式的每一項特性在目標格式裡都有地方可去。

SRT 轉 SBV:文字與時間碼都不會遺失,可直接下載結果;檔案不上傳,支援一次拖入多個。

這個方向不會遺失內容 —— 來源格式的每一項特性在目標格式裡都有地方可去。

SRT 轉 SMI:這一方向沒有損失,轉出的內容與原檔一致;全程本機處理,不上傳,可批次轉換。

這個方向不會遺失內容 —— 來源格式的每一項特性在目標格式裡都有地方可去。

SRT 轉 TTML:這一方向無損,文字、時間軸與換行原樣保留;全程在本機完成,不上傳,也能批次處理。

這個方向不會遺失內容 —— 來源格式的每一項特性在目標格式裡都有地方可去。

SRT 轉 VTT:這一方向沒有損失,轉出的內容與原檔一致;全程本機處理,不上傳,可批次轉換。

這個方向不會遺失內容 —— 來源格式的每一項特性在目標格式裡都有地方可去。

轉換為此格式

SubRip(SRT)是本站支援的字幕格式之一,這一頁是它的說明:能存什麼、不能存什麼,以及每一種可以轉過去的格式各有一頁。

上方那張表就是全部,沒有藏起來的功能清單。某一列寫「否」,就是轉進 SRT 時真的會遺失的東西;下方每個轉換頁都會在你開啟檔案之前先講清楚。SRT 每條字幕由編號、一行時間碼(00:00:04,126 --> 00:00:08,500)與一到兩列正文組成,時間是毫秒精度、兩端都寫出來;本站讀入時會依起始時間排序,並把讀不出來的時間碼記進有損說明,而不是拋出錯誤。

這些轉換全部在你的瀏覽器裡執行,不上傳、不需要帳號——對受保密協議、病歷或播出限制約束的素材,這一點是硬要求。

常見問題

SRT 檔案是什麼?

.srt 是幾乎所有軟體都讀得懂的格式:VLC、mpv、多數電視韌體、YouTube 的字幕上傳,以及它們附帶的編輯器。一條字幕就是一個編號、一行時間碼與一到兩列文字。

SRT 格式會儲存樣式嗎?

不會——它存的是字幕,而一條字幕就是文字加上兩個時間。現實中的 SRT 檔常在文字裡帶 <b>、<i>,多數播放器也會照做,但檔案本身沒有宣告字型、顏色或位置。

SRT 的每條字幕都有開始與結束時間嗎?

有,而 SRT 裡的時刻寫成 00:00:04,126。這是 SRT 最細的刻度——到毫秒——數字是精確的,所以一條字幕可以很短、很長,或與下一條重疊,檔案不會額外暗示什麼。

SRT 可以無損轉成哪些格式?

VTT、SBV、SMI、TTML、JSON 與 CSV——SRT 能表達的,它們也都能。上方能力表就是依據:某一列兩邊都寫「是」,就是轉換後仍保留的功能;其他方向都會丟東西,而每一頁都列出自己的清單。

SRT 檔案可以用文字編輯器打開嗎?

可以。.srt 檔案就是編號、時間碼列與文字不斷重複,而手工最容易弄錯的是時間碼的標點:00:00:01,250,用的是逗號。