SRT to VTT — SRT 字幕をブラウザで WebVTT に変換
SRT 字幕ファイルを WebVTT 形式に変換します。cue、リージョン、メタデータヘッダーを追加可能——ブラウザ内で動作、アップロード不要。
SRT to VTT
Convert SRT subtitle files to VTT (WebVTT) format. Works entirely in your browser — no uploads, no limits.
WebVTT は HTML5 の timed text track 標準です。すべての最新のブラウザの <video> と <audio> 要素は <track> 要素を通じて WebVTT をネイティブにサポートしています——JavaScript ライブラリも、polyfill も、プラグインも不要です。このブラウザネイティブ対応こそが、WebVTT が Web ホスト動画のターゲット形式として SRT に取って代わった理由です。SRT ファイルは JavaScript パーサーと独自レンダリングを必要としますが、VTT ファイルはブラウザ内蔵の字幕レンダラーで描画され、OS のアクセシビリティ設定で制御されるフォントサイズ、色のコントラスト、背景の不透明度といったユーザー設定を尊重します。
SRT から VTT への変換は構造的には単純です——cue 形式はほぼ同一です——しかし、細部の違いこそが単純なコンバーターを壊します。SRT は timestamp のミリ秒区切りにカンマを使います。VTT はピリオドを使います。SRT はエンコーディングについて言及しません。VTT は UTF-8 である必要があり、BOM は任意です。SRT にはファイルレベルのヘッダーがありません。VTT は最初の行に文字列リテラル WEBVTT を要求します。本ツールはこの 3 つを正しく処理し、YouTube、Brightcove、JW Player などのプラットフォームが字幕トラックの言語、kind、label を識別するために使う任意のメタデータヘッダーブロックを追加します。変換はブラウザ内で実行され、出力は W3C バリデーターを通る仕様準拠の VTT です。
使い方
SRT ファイルをドロップ
.srt ファイルを入力エリアにドロップします。パーサーが各 cue ブロックを読み取り、timestamp 形式を検証し、SRT のミリ秒 timestamp を WebVTT 形式(任意のミリ秒精度付き)に変換します。
必要に応じてメタデータを追加
ヘッダーオプションを有効にすると、Kind、Language、Label メタデータ付きの WEBVTT ヘッダーを書き出せます。このヘッダーは任意ですが、ブラウザはなくても VTT をレンダリングできます。ただし YouTube や JW Player など一部のプラットフォームでは必須です。
VTT をコピーまたはダウンロード
WebVTT 出力をクリップボードにコピーするか、.vtt ファイルとしてダウンロードします。出力には W3C 仕様で必須の WEBVTT ヘッダー行と、最初の cue の前にある空行が含まれます。
よくある質問
SRT と VTT の timestamp の違いは何ですか?
SRT は `HH:MM:SS,mmm`(ミリ秒の前にカンマ)を使用します。VTT は `HH:MM:SS.mmm`(ミリ秒の前にピリオド)を使用します。コンバーターはカンマとピリオドの入れ替えを行い、時刻範囲形式(`-->`)が VTT 仕様に正確に合致することを保証します。
cue に CSS スタイリングを追加できますか?
はい——VTT は cue setting によるインライン CSS と、埋め込みページの stylesheet での `::cue()` 疑似要素をサポートしています。コンバーターは各 cue に設定可能な `line` と `position` を追加するので、書き出し前に調整できます。
HTML タグを含む SRT ファイルも処理できますか?
はい。太字、斜体、下線タグはそのまま渡されます。VTT の cue テキストペイロードは SRT と同じ HTML サブセットを使用するためです。カラータグもそのまま保持されます。認識できないタグはプレーンテキストとして残されます。
なぜ WEBVTT ヘッダー行が必要なのですか?
W3C 仕様では、すべての VTT ファイルの最初の行が文字列 `WEBVTT` であり、その後に空行が続くことを要求しています。これがないと、仕様を厳格に実装するブラウザはファイルを拒否します。コンバーターはこのヘッダーを自動的に追加します。
制限事項
- インライン voice span には非対応VTT は話者識別用の `<v Speaker Name>` タグをサポートしています。ただしコンバーターは SRT のテキストパターンから話者を自動検出しません。変換後にテキストエディタで voice span を手動で追加してください。
- チャプターとリージョンには非対応WebVTT は位置指定された字幕用の chapter marker と region definition をサポートします。コンバーターは基本的な cue ブロックのみを出力します。chapter と region のメタデータは手動で追加する必要があります。
- VTT STYLE ブロックには非対応WebVTT はファイル内に CSS 風の構文で STYLE ブロックを記述できます。コンバーターは cue テキストのみを出力し、STYLE ブロックは書き込みません。スタイリングは埋め込みページの CSS 側で適用してください。
プラットフォーム別の注意点
- macOS
- Safari は `<track>` 要素経由で VTT をネイティブに処理します。`<video>` 要素と `<track src="file.vtt" kind="subtitles">` 子要素を含む HTML ページを読み込めば .vtt ファイルをプレビューできます。
- Windows
- Edge と Chrome はどちらも WebVTT をネイティブにサポートします。HTML5 動画には内蔵の `<track>` 要素を使用してください。ローカルでプレビューするには、(.vtt ではなく)HTML ファイルをブラウザにドラッグしてください。
- Linux
- FFmpeg で VTT 字幕を焼き込めます:`ffmpeg -i video.mp4 -vf subtitles=file.vtt output.mp4`。ソフト字幕の場合、MP4 は `-i file.vtt -c:s mov_text`、MKV は `-c:s copy` を使用します。
- Web
- YouTube は字幕アップロードダイアログで WebVTT ファイルを直接受け取ります。本ツールが出力する VTT は YouTube のパーサーと互換性があり、無修正でアップロードできます。