WebVTT字幕 (.vtt)
W3C 標準Web Video Text Tracks (WebVTT) は、HTML5のビデオ要素(<track>)や最新のHTTPライブストリーミング(HLS)にネイティブ統合された、キャプション、字幕、チャプター記述のための公式なW3Cウェブ標準です。
SRT を VTT に変換
無料のブラウザ内 SRT から VTT へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してWebVTTファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してWebVTTファイルを識別します:
16進数シグネチャ(オフセット0):
57 45 42 56 54 54ASCII表現: WEBVTT
標準化: W3C WebVTT勧告
技術仕様
| コンテナアーキテクチャ | 'WEBVTT'シグネチャで始まるUTF-8テキストファイル。任意のSTYLE/NOTEブロックと逐次キューブロックが続く |
| 圧縮 | 非圧縮プレーンテキスト(通常、HTTP経由ではGzipまたはBrotliで圧縮) |
| バイトエンディアン | UTF-8テキストストリーム |
| 色空間 | キュースタイルでCSS Color Module Level 4を完全サポート |
| チャンネルと構造 | タイムコード付きキュー、音声認識の信頼度、CSSスタイル、画面上の位置設定 |
| 最大寸法 | 逐次表示するキュー数に上限なし |
| 透過性 | '::cue'疑似要素を介したCSS不透明度とアルファ透明度を完全サポート |
| ストリーミングとプログレッシブ | HTML5 <video>要素とHLS / DASHライブ動画マニフェストでのストリーミングに標準対応 |
技術比較表:WebVTTと競合製品
| 技術属性 | WebVTT (現在) | SRT | ASS | SUB |
|---|---|---|---|---|
| HTML5ウェブ統合 | 100%ネイティブ標準 (<track>) | JS変換が必要 | WebAssemblyが必要 | 変換が必要 |
| CSSスタイリング | 完全なネイティブCSSスタイリング (::cue) | 基本HTMLタグのみ | 独自のオーバーライドタグ | なし |
| HLS / DASH ストリーミング | WebVTTはブラウザー動画や一部のストリーミング再生リストで時刻付きテキストトラックに使われます。プレーヤーの対応は配信形式によって異なります | 多重化(Muxing)を介してサポート | 限定的なストリーミングサポート | なし |
| ヘッダー要件 | 厳格な「WEBVTT」マジックテキスト 1行目 | ヘッダー不要 | [Script Info]セクション | ヘッダー不要 |
一般的な破損モードと16進数リカバリガイド
ブラウザコンソールのエラー: 「不正なWebVTTファイル: WEBVTTシグネチャがありません」。
根本原因: 1行目に「WEBVTT」文字列がない、またはヘッダーの前に空行がある。
復旧: File2File.app字幕コンバーターを使用して、ファイルの先頭に「WEBVTT\n\n」を追加します。
セキュリティ分析とパーサー攻撃ベクトル
ウェブブラウザ内のWebVTTパーサーは、信頼されていないキューを処理します。これらは、DOMにサニタイズされずにレンダリングされた場合、クロスサイトスクリプティング(XSS)につながる可能性があります。
既知の攻撃ベクター
- ウェブビデオプレイヤーのDOMに挿入されたサニタイズされていないHTMLキューコンテンツを介したXSSインジェクション。
- 自動化されたサーバー側の字幕サムネイル生成中のサーバーサイドリクエストフォージェリ(SSRF)。
- 不正なCSSキューセレクターを通じたサービス拒否(DoS)。
防御的ベストプラクティス: ネイティブブラウザの <track> レンダリングに依存し、手動でのDOM挿入の前にキューペイロードをサニタイズします。
歴史的背景とマイルストーン
主なメリット
- HTMLの<track>要素は字幕やキャプションにWebVTTを使います。ブラウザーは動画プレーヤーを通じてキューの時刻やスタイルを表示しますが、対応するキュー機能には違いがあります。
- 豊富なCSSスタイリングサポート:ネイティブの「::cue」CSS疑似要素を使用して、色、フォント、背景、位置をカスタマイズできます。
- HLSやMPEG-DASHのサービスでは、動画セグメントとともにWebVTTの字幕トラックを配信できます。対象プレーヤーがプレイリスト内の字幕パッケージと各言語のトラックに対応しているか確認してください。
技術的な制限とデメリット
- 厳格なヘッダー要件:ファイルの最初の行が正確に「WEBVTT」で始まっていない場合、ブラウザはファイルを拒否します。
- ピリオドミリ秒区切り(「00:01:20.500」)のため、レガシーなカンマ区切りのSRTファイルからの変換が必要です。
- 古い非ブラウザハードウェアプレイヤー(安価なUSBメディアボックスなど)には、ネイティブのWebVTTサポートが欠けていることがよくあります。
興味深い技術トリビア
- すべての有効なWebVTTファイルは、1行目に正確な単語「WEBVTT」で始まる必要があります。それ以外の場合は、ブラウザはファイルを無視します。
- WebVTTは、古典的なSRT字幕とほぼ同じように見えるように意図的に設計されていたため、もともと「WebSRT」と呼ばれていました。
- WebVTTは、ビデオスクラバーバーにカーソルを合わせた際のビデオチャプターやインタラクティブなサムネイルツールチップにも使用できます。
よくある技術的な質問
WebVTT は何に使用されますか?
WebVTT は、Webサイト上の HTML5 の <video> 要素に字幕、キャプション、チャプター、説明を追加するための公式のWeb標準フォーマットです。
SRT 字幕を WebVTT に変換するにはどうすればよいですか?
ブラウザ上で直接 File2File.app を使用し、1クリックで SRT ファイルをクリーンな WebVTT ファイルに変換できます。
WebVTT 字幕がブラウザに表示されないのはなぜですか?
ファイルが1行目に「WEBVTT」で始まり、その後に空行があり、Webサーバーが「Content-Type: text/vtt」ヘッダー付きで配信していることを確認してください。