
SRT vs VTT 字幕フォーマット:どちらを使うべきか?(2026年版)
Summarize this article with:
SRTがより安全なデフォルトです。主要なプラットフォームやデスクトッププレイヤーすべてで動作し、ヘッダーも不要で、フォーマット特有の癖もありません。VTTは、Webページに動画を埋め込むとき、HLSストリーミングを扱うとき、テキストの位置指定や話者ラベルが必要なときに選ぶべきものです。タイムスタンプの構文はたった1文字だけ異なり(カンマかピリオドか)、これが字幕ファイルがエラーを出さずに読み込みに失敗する最も多い原因です。どちらのフォーマットにもないリッチなスタイリングが必要な場合は、TTMLとASSフォーマットを扱う姉妹記事をご覧ください。
安全なデフォルトはSRT。Webネイティブな選択はVTT。 手っ取り早い答えをお探しの方へ:ソーシャルプラットフォームやデスクトッププレイヤーにはSRTをアップロードし、Webサイトへの動画埋め込みやHLSストリーミングを扱う場合はVTTを使用してください。この記事の残りの部分では、その理由と、サイレントな失敗を引き起こす正確な構文の違いについて説明します。
TTMLやASS/SSA(リッチなカラオケスタイリング、放送向けフォーマット)についても知りたい場合は、拡張比較のSRT vs VTT vs TTML字幕フォーマットをご覧ください。
SRTとは何か、そしてなぜデフォルトになったのか
SRT(SubRip Text)は2000年代初頭から事実上の字幕標準となっています。当時、SubRipプロジェクトがDVDから字幕を抽出するためにこの形式を最初に使用しました。このフォーマットは.srt拡張子を持つプレーンテキストファイルで、連番付きのエントリーと以下の構造を持ちます:
1
00:00:01,000 --> 00:00:04,500
This is the first subtitle line.
2
00:00:05,200 --> 00:00:09,800
This is the second subtitle line.
It can span two lines.
エントリーごとの4つの要素:連番、タイムスタンプのペア、テキスト、そして空行の区切りです。タイムスタンプの形式はHH:MM:SS,mmmで、ミリ秒の前にカンマが付きます。このカンマは非常に重要です。代わりにピリオドが使用されると、多くのプレイヤーや字幕パーサーはSRTファイルを黙って拒否します。これが「字幕が表示されない」という問題の最も一般的な原因です。
SRTは太字(<b>)、斜体(<i>)、下線(<u>)の基本的なインラインタグをサポートしていますが、これらに対するプレイヤーのサポートは一貫していません。SRTがサポートしていないもの:テキストの位置指定、CSSスタイリング、話者ラベル、チャプターマーカー、メタデータヘッダーです。
このシンプルさこそが特徴です。どんなテキストエディターでもSRTファイルを作成・修正できます。ツールも不要で、タイムスタンプ形式以外のマークアップの知識も必要ありません。
SRTが受け入れられる環境
- YouTube(推奨される主要フォーマット)
- Vimeo
- Facebook動画
- LinkedIn動画
- X(旧Twitter)
- VLC、MPC-HC、MPV、PotPlayer、および事実上すべてのデスクトッププレイヤー
- Adobe Premiere Pro(インポート・エクスポート)
- Final Cut Pro
- DaVinci Resolve(ネイティブインポート)
- Plex(最も広いデバイス互換性)
- ほとんどの字幕編集ツール
VTTとは何か、そしていつ重要になるのか
VTT(Web Video Text Tracks、別名WebVTT)はW3CによってWeb向けに設計されました。最初の作業草案は2014年に公開されています。2026年5月現在、W3C勧告候補草案(Candidate Recommendation Draft)の地位にあります。その目的は、HTML5動画に、CSSと連携してスタイリングを行い、ブラウザーが処理できる位置情報を運べるネイティブの字幕フォーマットを提供することでした。
VTTファイルはSRTとほぼ同じように見えますが、2つの重要な構文の違いといくつかの新機能があります:
WEBVTT
1
00:00:01.000 --> 00:00:04.500
This is the first subtitle line.
2
00:00:05.200 --> 00:00:09.800 position:10% align:start
This is the second subtitle line.
3
00:00:10.500 --> 00:00:14.000
<b>Bold text</b> and <v Speaker Name>labeled voice</v> are both valid.
SRTからの2つの構文の違い:
- ファイルは1行目が
WEBVTTで始まる必要があります。これがないと、ブラウザーはファイル全体を拒否します。 - タイムスタンプはミリ秒の前にカンマではなくピリオドを使用します。
連番は任意です。タイムスタンプ行のキューセッティングが位置と配置を制御します。
VTTだけの機能
- キューの位置指定:
line、position、size、align属性により、字幕を画面下部中央だけでなくフレーム内の任意の場所に配置できます。 ::cueによるCSSスタイリング: 親ページは::cue疑似要素を通じて、color、font-size、background-color、text-shadowでキャプションをスタイリングできます。Chrome、Firefox、Safari、Edgeのすべてがこれをサポートしています。- 話者ラベル:
<v Speaker Name>タグは、表示内容を変えずに誰が話しているかを示します。話者分離(ダイアライゼーション)機能のある自動生成トランスクリプトに便利です。 - チャプターマーカー: 別のVTTファイルで、動画ナビゲーション用のチャプタータイムスタンプを定義できます。
- NOTEブロック: 視聴者には決して表示されないファイル内のコメントです。
- デフォルトのカラークラス: White、lime、cyan、red、yellow、magenta、blue、blackは、外部CSSなしでキャプション要素に色を付けるために仕様で定義されている組み込みクラス名です。
VTTが使用される環境
- HTML5の
<video>と<track>要素(ネイティブ、JavaScript不要) - HLSストリーミング(VTTはApple HLSの標準テキストトラック形式。CEA-608/708とIMSC1もサポートされていますが、字幕テキストにはVTTが一般的な選択です)
- MPEG-DASHストリーミング
- Video.js、Plyr、JW Player、およびほとんどのWebベースの動画プレイヤー
- Safari、iOS、tvOS(Appleエコシステム)
- Wistia、Brightcove
- YouTubeとVimeo(どちらもSRTとともにVTTを受け付けます)
- Adobe Premiere Pro(インポート・エクスポート)
SRT vs VTT:機能比較
| 機能 | SRT | VTT |
|---|---|---|
| 拡張子 | .srt | .vtt |
| 正式名称 | SubRip Text | Web Video Text Tracks |
| ヘッダー必須 | いいえ | はい(1行目にWEBVTT) |
| ミリ秒の区切り文字 | カンマ(,) | ピリオド(.) |
| 連番 | 必須 | 任意 |
| テキストの位置指定 | いいえ | はい(line、position、size、align) |
| CSSスタイリング対応 | いいえ | はい(::cue疑似要素経由) |
| 太字/斜体/下線 | はい(ただしプレイヤーによる差あり) | はい(最新ブラウザーで一貫) |
| 話者ラベル | いいえ | はい(<v>タグ) |
| チャプターマーカー | いいえ | はい |
| コメント/注記 | いいえ | はい(NOTEブロック) |
HTML5ネイティブ<track> | いいえ(JavaScriptラッパーが必要) | はい |
| HLSストリーミング | いいえ | はい(標準テキスト形式) |
| YouTubeアップロード | はい | はい |
| Facebook/LinkedIn/X | はい | いいえ |
| VLC | はい | はい |
| DaVinci Resolve | はい | はい(一部バージョンでインポートの問題が発生することがある) |
| Plex | はい(全クライアント) | はい(Webおよび一部クライアント。TVアプリではSRTが必要な場合あり) |
| 手動編集の容易さ | 非常に簡単 | 簡単 |
| ファイルサイズ | 小さい | 小さい |
プラットフォーム互換性早見表
| プラットフォーム | SRT | VTT |
|---|---|---|
| YouTube | はい | はい |
| Vimeo | はい | はい |
| Facebook動画 | はい | いいえ |
| LinkedIn動画 | はい | いいえ |
| X(Twitter) | はい | いいえ |
HTML5 <track>要素 | いいえ(JSが必要) | はい |
| HLSストリーミング | いいえ | はい |
| VLCメディアプレイヤー | はい | はい |
| MPV | はい | はい |
| Adobe Premiere Pro | はい | はい |
| DaVinci Resolve | はい | はい(再インポートが必要な場合あり) |
| Plex | はい | 一部対応(Webは可、一部TVクライアントはSRTが必要) |
選び方
SRTを使うべき場合:
- ソーシャルプラットフォーム(YouTube、Vimeo、Facebook、LinkedIn、X)にアップロードする場合。
- テストなしでどこでも動作するファイルが必要な場合。
- 字幕ファイルを共有し、受け取り側のプレイヤーで確実に処理できるようにしたい場合。
- DaVinci Resolveで作業していて、インポートのエッジケースを避けたい場合。
VTTを使うべき場合:
- HTML5の
<video>と<track>を使ってWebサイトに動画を埋め込む場合。VTTはブラウザーでネイティブにサポートされる唯一のテキストトラック形式です。 - HLSを使ったストリーミングワークフローを構築している場合。
- 手話通訳者や画面上のグラフィックスのためにフレーム上部など、画面の特定の位置に字幕を表示する必要がある場合。
- キャプションファイル自体に話者の情報を表示したい場合。
- Video.js、Plyr、または類似のライブラリを使ってプレイヤーを開発している場合。
私の見解:Web動画プレイヤーやストリーミングパイプラインを構築しているのでなければ、SRTが正しい出発点です。関心がありそうなすべてのプラットフォームで正しく動作します。特定の技術要件が求める場合にのみVTTに切り替えましょう。デフォルトで切り替える必要はありません。
SRTとVTTの相互変換
両フォーマットは同じ基本データ(テキスト+タイミング)を共有しているため、変換は簡単です。どちらの方向でもタイミング情報は失われません。
SRTからVTTへ:
- 最初の行として
WEBVTTを追加します。 - ミリ秒の前のすべてのカンマをピリオドに変更します:
00:00:01,000が00:00:01.000になります。 - 必要に応じて連番を削除します。
基本的なファイルの変換はこれで完了です。キューセッティングを追加したい場合は、-->の後のタイムスタンプ行に追加します。
VTTからSRTへ:
WEBVTTヘッダー行を削除します。- ミリ秒の前のすべてのピリオドをカンマに変更します。
- VTTファイルで省略されていた場合は、連番(1、2、3...)を追加します。
- タイムスタンプ行からキューセッティングを削除します。SRTはこれらを無視し、一部のパーサーはファイルを拒否する可能性があります。
既存のファイルを変換するのではなく、録音から字幕を生成する必要がある場合は、字幕ジェネレーターが音声や動画から時間情報付きのテキストを作成し、必要な形式でエクスポートできます。
SRTファイルをゼロから作成する方法については、SRTファイルの作り方をご覧ください。
音声・動画から字幕を生成する

既存の字幕ファイルではなく録音から始める場合は、適切なタイミングのSRTまたはVTT出力を直接生成できます。ConvertAudioToTextの字幕ジェネレーターは音声・動画ファイルを文字起こしし、SRTまたはVTT形式でエクスポートします。会議ボットやアカウントなしでクリーンなトランスクリプトだけが必要な場合は、音声文字起こしツールでファイルをアップロードするかURLを貼り付けてください。
ファイルを入手した後の字幕の扱い方のコツについては、2026年版字幕エディター比較で、タイミングやテキスト調整の主な選択肢を紹介しています。
FAQ
SRTとVTTの違いは何ですか?
SRT(SubRip)とVTT(WebVTT)はどちらも、プレーンテキストファイルに時間情報付きのテキストを保存します。VTTは1行目にWEBVTTヘッダーが必要で、ミリ秒の区切り文字としてSRTのカンマではなくピリオドを使用し、位置指定や配置のためのオプションのキューセッティングを追加できます。SRTにはヘッダーも位置指定もありませんが、ほぼすべてのプレイヤーとプラットフォームで設定なしで動作します。Web動画にはVTTが有利です。それ以外の場合は、SRTの方がシンプルで安全です。
VTTファイルをYouTubeにアップロードできますか?
はい。YouTubeはSRTとVTTの両方のファイルを受け付けます。どちらの形式でもYouTubeへの字幕アップロードに使えます。すでにVTT形式の字幕をお持ちなら、アップロード前に変換する必要はありません。
SRTをVTTに変換するにはどうすればよいですか?
ファイルの最初の行としてWEBVTTを追加し、その後、すべてのカンマのミリ秒区切りをピリオドに変更します(00:00:01,000が00:00:01.000になります)。連番はVTTでは任意なので、残しても削除しても構いません。基本的なファイルの変換はこれで完了です。VTTファイルにキューセッティングがあり、それをSRT用に取り除きたい場合は、各タイムスタンプ行から位置指定のテキストも削除してください。
ストリーミング動画にはどの字幕フォーマットを使うべきですか?
HLSストリーミング(Appleと多くのCDNで使用)では、WebVTTが標準のテキストトラック形式です。SRTはHLSプレイリストでネイティブにサポートされていません。DASHストリーミングでも、VTTが一般的な選択肢です。HTML5の<video>と<track>によるオープンウェブでは、JavaScriptなしでネイティブにサポートされるのはVTTのみです。YouTube、Facebook、LinkedIn、Xなどのソーシャルプラットフォームでは、SRTがすべてをカバーします。
出典
- YouTubeがサポートする字幕・キャプションファイル形式
- WebVTT: The Web Video Text Tracks Format(W3C勧告候補草案、2026年5月)
- Web Video Text Tracks Format(WebVTT)、MDN Web Docs
- ::cue CSS疑似要素、MDN Web Docs
- SubRipフォーマットの歴史、Wikipedia
- Vimeoの字幕・キャプションヘルプセンター
- HLSでのWebVTTを使った字幕・クローズドキャプション、Vidbeo
- Appleデバイス向けHLSオーサリング仕様
- DaVinci ResolveのVTTインポートに関する議論、Blackmagic Forum
Try transcription free
Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.
Related Articles
How to Add Timestamps to a Transcript
Learn how to add timestamps to a transcript with an audio-to-text tool, then export timestamped SRT or VTT subtitle files for easy navigation and editing.
How to Transcribe a Conference Talk to Text
Learn how to transcribe a conference talk or keynote to text, label speakers, and export SRT, VTT, or TXT using a straightforward upload or URL workflow.