FriskriptionブログSRTとVTT

SRTとVTT: どちらを使うか

同じ行を、同じタイミングで運び、違いは三文字ほど。それでも気にする理由は、片方だけしか受け付けない場所がいくつかあるからです。

短い答え

  • SRTを選ぶのは、動画編集ソフト、デスクトップのプレーヤー、YouTubeへの字幕アップロードのとき。どこでも通る形式です。
  • VTTを選ぶのは、字幕をWebページに載せるとき。HTML5の<track>要素はWebVTTしか読まないからです。
  • 迷ったらSRT。対応範囲が広く、あとからVTTに変えるのもヘッダ1行と置換だけです。
  • 本当の違い: VTTはWEBVTTの行で始まり、ミリ秒の手前がSRTのカンマに対してピリオドになります。
  • VTTはSRTにないスタイルや位置指定も持てます。ただしほとんどの人には不要で、無視するプレーヤーもあります。

同じ3キューを、両方の形式で

SRT

1
00:00:01,200 --> 00:00:04,600
So today we are finally opening the
box everyone has been asking about.

2
00:00:04,600 --> 00:00:07,900
I have not looked inside. Not once,
I promise.

3
00:00:08,300 --> 00:00:11,400
Right — let us do this properly.

VTT

WEBVTT

1
00:00:01.200 --> 00:00:04.600
So today we are finally opening the
box everyone has been asking about.

2
00:00:04.600 --> 00:00:07.900
I have not looked inside. Not once,
I promise.

普通のファイルなら、違いは本当にこれだけです。ヘッダの行と、カンマがピリオドになること。どちらもプレーンなUTF-8テキストで、どちらもキューに番号を振り、どちらも開始と終了の間に-->を置き、どちらもその下の行に本文を書きます。

実際に違うところ

SRT (SubRip) VTT (WebVTT)
ファイルヘッダ なし 1行目にWEBVTT、必須
ミリ秒の区切り カンマ — 00:00:01,200 ピリオド — 00:00:01.200
キュー番号 必須 任意。数字でなく名前でもよい
位置指定 形式に含まれない キューごとの位置・揃え・サイズの指定
スタイル 簡単なインラインタグ。対応はまちまち CSSに似たSTYLEブロックとキュークラス
コメントとメタデータ なし NOTEブロック、チャプターとメタデータのトラック
HTML5の<track> 非対応 これが読める唯一の形式
それ以外すべて 事実上どこでも通る 広く通るが、まれに通らない

行き先から選ぶ

字幕の行き先 選ぶのは 理由
動画編集ソフト — Premiere、DaVinci Resolve、Final Cut、CapCut SRT どの編集ソフトも聞き返さずに読み込む形式です。
デスクトップのプレーヤー — VLC、IINA、mpv SRT 動画と同じ名前で横に置けば、勝手に読み込まれます。
YouTubeへの字幕アップロード SRT YouTubeは両方受け付けますが、SRTがいちばん引っかかりません。
WebページのHTML5 <video> VTT <track>要素はWebVTTしか読みません。
HLSやDASHの配信 VTT どちらも字幕形式としてWebVTTを規定しています。
ソーシャル動画 — Instagram、TikTok、LinkedIn SRT そもそもアップロードできる場合、まずSRTです。
まだ決まっていない SRT 対応が広く、あとからの変換も簡単です。

相互に変換する

SRTからVTTは二か所だけ。先頭にWEBVTTと空行を足し、すべてのタイムスタンプのカンマをピリオドに変えます。ほかは動かす必要がありません。

# SRT → VTT
{ echo -e "WEBVTT\n"; sed 's/,/./g' subtitles.srt; } > subtitles.vtt
このsedはわざと大雑把です。 ファイル中のカンマをすべて置き換えるので、セリフの中のカンマまで変わります。タイムスタンプには問題ありませんが、本文には誤りです。人に渡すものなら、タイムスタンプの行だけを変換してください。あるいは最初から必要な形式で書き出せば、手間はゼロです。

VTTからSRTは逆をやるだけ。加えて、SRTに居場所のないものを落とします。NOTEブロック、STYLEブロック、タイムスタンプ後のキュー設定、そして数字でなく名前のキューです。

どちらの形式でもファイルを手に入れる

形式論争の決着ではなく字幕そのものが必要でここに来たのなら、メディアスタジオが動画か音声のファイル — MP4、WebM、MP3、M4A、WAV — をブラウザ内で読み、話された言葉を文字起こしして翻訳し、最後にどちらの形式でも書き出します。ファイル自体はパソコンから出ません。

毎週30分が無料で、課金対象は音声のある部分だけ。どちらのダウンロードも中身の行は同じなので、最後の選択はまさにこのページの話そのものです。詳しい手順もあります。

よくある質問

SRTとVTTの違いは何ですか?

普通のファイルでは二つです。VTTはWEBVTTの行で始まり、タイムスタンプのミリ秒の手前がSRTのカンマに対してピリオドになります。さらにVTTはキューの位置指定、スタイル、コメント、メタデータに対応しますが、SRTにはその居場所がありません。

YouTubeにはどちらを使うべきですか?

SRTです。YouTubeは両方受け付けますが、アップロードの流れがいちばん素直なのはSRTで、途中のほかの道具もすべて受け取れます。

Webサイトにはどちらを使うべきですか?

VTTで、選択の余地はありません。HTML5の<track>要素はWebVTTしか読まないからです。HLSとDASHの配信もどちらもWebVTTを規定しています。

VLCはVTTファイルを再生できますか?

たいていできますが、デスクトップのプレーヤーにはSRTのほうが安全です。字幕ファイルを動画と同じ名前にして同じフォルダに置けば、自動で読み込まれます。

どちらかのほうが正確ですか?

いいえ。同じ行を同じタイミングで入れる容器にすぎません。正確さは字幕を作ったものから来るのであって、保存した形式から来るのではありません。

字幕ファイルに二言語を同時に入れられますか?

別々のトラックとしては入りませんが、ひとつのキューに両方の行を入れられます。生成前に原語を訳の下に表示するオプションを入れておくと、各キューは訳文が先、その下に括弧で原文という形で書かれます。ファイルを二つ用意しなくても、どのプレーヤーでも両方が表示されます。

ASSやSSAはどうですか?

あれは別の系統の形式で、凝ったスタイル、位置指定、組版のために作られたものです。ファンサブが使うような用途ですね。字幕そのものがデザインの仕事をしているなら価値があります。タイミング付きの翻訳テキストなら、SRTとVTTがちょうどよい大きさの道具です。

手元の素材から字幕ファイルを作る

毎週30分が無料。インストール不要で、ファイルはパソコンから出ません。

メディアスタジオを開く