VTT 字幕フォーマット
この形式が表現できること
- テキストのスタイル
- 太字と斜体
- 画面内の位置指定
- 非対応
- カラオケのタイミング
- 非対応
- 字幕ブロック内の改行
- 対応
- タイムライン
- 各字幕の開始と終了の時刻
- タイミングの精度
- 1 ms
- フレーム番号で保存されるタイミング
- 非対応
- 右から左に書く言語
- 対応
例
典型的な VTT ファイルと、そこから読み取れる内容
ファイル
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
ファイルの中身
2 cues, 2 lines of text
00:00:01.000 → 00:00:04.000
Hello there.
00:00:04.500 → 00:00:08.000
Second line with italics. [italic ×1]
[settings align:start position:10%]
Outside the cues:
header "WEBVTT"右側は変換後のファイルではなく、このサイトが左側から読み取った内容です。どの変換も、この読み取り結果から出発します。
崩れた VTT ファイルと、それでも読み取れる内容
ファイル
WEBVTT - boundary sample
NOTE a comment
spanning two lines
STYLE
::cue { color: red }
REGION
id:fred
width:40%
00:01.000 --> 00:03.000
Hours-less timecode with <b>bold</b> and <v Roger>a voice tag.
00:05.000 --> 00:04.000
End before start.
NOTE between cues
00:07.000 --> 00:09.000
entities stay literal.
00:10.000 --> oops
Unreadable end time.
NOTE trailing
ファイルの中身
3 cues, 3 lines of text
00:00:01.000 → 00:00:03.000
Hours-less timecode with bold and <v Roger>a voice tag. [bold ×1]
00:00:05.000 → 00:00:05.001
End before start.
00:00:07.000 → 00:00:09.000
entities stay literal.
Outside the cues:
header "WEBVTT - boundary sample"
blocks NOTE ×3, STYLE, REGION
Reported while reading — repaired or skipped, never silently:
1 × blocks that were neither a cue nor a NOTE/STYLE/REGION block (they were skipped)
1 × cues whose end time was not after their start time (they were given a 1ms duration)実ファイルには BOM、Windows の改行、タイムスタンプの前の余分な行、欠けたヘッダーが付いてきます。どれも例外にはせず、理解できない部分は黙って捨てずに報告します。
WebVTT (VTT) を他の形式に変換
いずれもブラウザ内で完結します。ラベルには、その方向で何が失われるかが開く前に示されています。
- タイミング
- スタイル
- 精度
- 形式固有の内容
- タイミング
- スタイル
- 改行
- 形式固有の内容
この形式への変換
- SubRip (SRT) → WebVTT (VTT)
- Advanced SubStation Alpha (ASS) → WebVTT (VTT)
- SubStation Alpha (SSA) → WebVTT (VTT)
- YouTube SBV → WebVTT (VTT)
- SAMI (SMI) → WebVTT (VTT)
- LRC Lyrics → WebVTT (VTT)
- MicroDVD → WebVTT (VTT)
- TTML (Timed Text) → WebVTT (VTT)
- SubtitleMatrix JSON → WebVTT (VTT)
- Plain Text (TXT) → WebVTT (VTT)
- CSV Spreadsheet → WebVTT (VTT)
WebVTT(VTT)は、このサイトが扱う字幕形式のひとつです。このページはその形式のリファレンスで、何を保存できて何を保存できないか、そして変換先ごとのページをまとめています。
上の対応表がすべてで、隠れた機能一覧はありません。×の行は、その形式から VTT に変換したときに失われるものそのものです。下に並ぶ各変換ページでは、ファイルを開く前に同じ内容を明示しています。
どの変換もブラウザ内で実行されます。アップロードもアカウント登録も不要なので、NDA の下にある素材、カルテ、放送前の映像でもそのまま扱えます。
よくある質問
VTT ファイルとはどんな形式ですか?
Web の字幕形式です。HTML5 の <track> 要素が直接読み込むため、ブラウザ、配信プレーヤー、多くの現代のプラットフォームが期待する形です。SRT が持つものに加えて、ヘッダー、任意のコメント、字幕ごとの設定を持ちます。
VTT はスタイルを保存できますか?
少しだけ、しかもテキストの外ではなく中に保存します。強調と色は字幕の一部で、<b>、<i>、<u>、<font color="…"> として書かれます。フォントサイズ、縁取り、余白を宣言する場所はなく、表示するページ側が決めます。字幕の上に STYLE ブロックとして CSS 規則を置くこともでき、あるファイルはそのまま保持します。
VTT の各字幕は開始と終了の両方を持ちますか?
はい。VTT の時刻は 00:00:04.126 のように書かれ、ミリ秒まで表現できます。値は正確なので、短い字幕も長い字幕も、次の字幕と重なる字幕もそのまま扱えます。
VTT はどの形式に変換するのがよいですか?
このサイトのどの形式も VTT のすべてを引き継げないため、無料の方向はありません。各変換ページがそれぞれの損失一覧を出します。よく見る形式かどうかではなく、どの損失なら受け入れられるかで選んでください。
VTT ファイルは字幕の外に何を保存しますか?
ヘッダー行と、任意でコメント(NOTE)、スタイルブロック(STYLE)、領域定義(REGION)、字幕ごとの設定(align、position、line)を保存します。それらを持たない形式へ変換すると失われ、各ページがそう明示します。