SRT から VTT への字幕変換ツール
SubRip ファイルを Web サイト、YouTube、HTML5 動画プレーヤー用の WebVTT に変換します。
SRT ファイルをここにドラッグ&ドロップ
またはクリックして選択
50MB以下の.srtファイルに対応
最も一般的な字幕形式の隔たりを解消
SRT は最も広く使われている字幕形式ですが、ブラウザは受け付けません。HTML5 仕様では <track> 要素に WebVTT が定められており、主要ブラウザはすべてこの要件を強制します。この変換ツールは、必須の WEBVTT ヘッダーを先頭に追加し、SRT のカンマ区切りミリ秒(00:01:30,500)を VTT のピリオド区切り(00:01:30.500)に変換し、VTT で使われない SRT のエントリー番号を削除します。出力は Chrome、Firefox、Safari、Edge、モバイルブラウザですぐ読み込めます。
SRT → VTT コード構文と構造の検証
ヘッダー定義、タイムスタンプ構文、キューペイロードのフォーマットを並べて比較し、コードレベルの対応関係を確認できます
SRT vs VTT 技術仕様
SRT
SRT(SubRip)は最も一般的なプレーンテキスト字幕形式です。各エントリーは連番、カンマ区切りミリ秒のタイムスタンプ行(00:01:30,500 --> 00:01:35,000)、1 行以上の字幕テキストで構成されます。SRT にはヘッダー、メタデータ、スタイル指定がなく、ブラウザ以外のほぼすべてのメディアプレーヤーと互換性があります。
VTT
VTT(WebVTT)は HTML5 動画用の W3C 標準字幕形式です。ファイルは WEBVTT ヘッダーで始まり、各キューはエントリー番号なしのピリオド区切りタイムスタンプ(00:01:30.500 --> 00:01:35.000)を持ちます。VTT は位置合わせ用のキューセッティングや、コメント用の NOTE ブロックをサポートします。
フォーマットの違い
変換のトラブルシューティングと注意点
プレイヤー互換性、文字エンコーディング、タイミング同期に関する実践的な解決策
ブラウザのコンソールで「Failed to load resource」が表示されたり、.vtt トラックが拒絶されるのはなぜですか?
Webブラウザでは、静的サーバーが WebVTT ファイルを正確な MIME タイプ「text/vtt; charset=utf-8」で配信する必要があります。また、動画と字幕が異なるドメインに配置されている場合は、サーバーが適切な CORS ヘッダー(Access-Control-Allow-Origin: *)を返す必要があります。設定されていない場合、セキュリティ上の理由から Chrome や Safari によって字幕トラックがブロックされます。
HTML5 動画プレーヤー(Video.js、Plyr、ネイティブプレーヤー)で字幕の同期がずれたり狂ったりする
WebVTT はタイムスタンプが時系列順であることを厳格に要求します。元の SRT ファイルに順序の乱れ、重複したタイムスタンプ、負の継続時間が含まれている場合、ブラウザの WebVTT パーサーが以降のキューを表示できなくなることがあります。AllSubConverter は書き出し時にキューを時系列順に並べ替え、タイムスタンプ範囲を安全に正規化します。
SRT の基本 HTML タグ(<b>、<i>、<font>)が WebVTT で意図通りに動作しないのはなぜですか?
WebVTT は音声タグ `<v 名前>`、CSS クラス `<c.クラス名>`、太字 `<b>`、斜体 `<i>` をネイティブにサポートしていますが、旧来の `<font color=...>` タグには対応していません。WebVTT トラックの文字色などを装飾する場合は、CSS の ::cue 擬似要素(例:video::cue { color: yellow; })を使用してください。
アクセント付き文字や絵文字が Web ページで文字化けするのはなぜですか?
WebVTT ファイルは常に UTF-8 でエンコードする必要があります。元の SRT が ANSI/Windows-1252 や GBK で作られていると、ASCII 外の文字は壊れます。本ツールはバイト順マーク(BOM)なしの UTF-8 で出力します。
機能
変換する理由
主なユースケース
ウェブサイト動画の埋め込み
ウェブサイトの HTML5 動画に字幕を追加します。ブラウザは <track> 要素経由の VTT を要求し、SRT 字幕は表示しません。
YouTube キャプションのアップロード
YouTube Studio から VTT 字幕をアップロードし、動画に正確に同期したキャプションを提供します。
e ラーニングのアクセシビリティ
教育動画に VTT キャプショントラックを用意し、アクセシビリティ要件に合わせて内容とタイミングを確認します。
独自動画プレーヤー開発
Video.js、Plyr、Shaka Player などの JavaScript 動画プレーヤーで、標準 <track> API を使って VTT 字幕トラックを読み込みます。
SNS 動画字幕
一部の SNS やウェブベースの動画エディタは VTT を受け付けるため、宣伝動画や SNS 動画にキャプションを追加できます。
関連フォーマット
使い方
- 1
.srt ファイルを変換ツールにドラッグするか、クリックして選択します。
- 2
パーサーが各 SRT エントリーの番号、タイムスタンプ行、テキストブロックを読み取ります。
- 3
タイムスタンプのカンマをピリオドに置き換えます(00:01:30,500 は 00:01:30.500 になります)。
- 4
VTT ではオプションのキュー識別子を使うため、SRT の連番エントリー番号を削除します。
- 5
出力の先頭行に WEBVTT ヘッダーを追加します。
- 6
整理された各エントリーが、タイムスタンプとテキストを含む VTT キューブロックになります。
- 7
最終的な VTT コンテンツは UTF-8 としてエンコードされ、ダウンロードできます。
その他の字幕ツール
よくある質問
HTML5 仕様では、<track> 要素に使える字幕形式として WebVTT だけが定められています。ブラウザには SRT パーサーがなく、<track> タグで SRT ファイルを指定しても無視されます。SRT を VTT に変換すると、ブラウザ互換の字幕ファイルになります。
違いは小数点区切りだけです。SRT はカンマ(00:01:30,500)、VTT はピリオド(00:01:30.500)を使います。変換ツールはタイムスタンプ行のカンマをピリオドに置き換えます。時間、分、秒、ミリ秒のほかの要素はすべて同じです。
はい。YouTube は字幕アップロードに VTT ファイルを受け付けます。YouTube Studio で動画を選び、字幕セクションから VTT をアップロードし、取り込み後のタイミングを確認してください。
すべての VTT ファイルは先頭行に WEBVTT という文字列と、その後の空行が必要です。このヘッダーがないとブラウザはファイルを拒否し、字幕が表示されません。変換ツールが自動的に追加します。
はい。VTT は SRT のような連番を使いません。代わりにオプションの文字列識別子をキューに指定できます。このツールは SRT の数値エントリーを削除します。識別子が必要な場合は後から追加できますが、VTT 仕様上は必須ではありません。
いいえ。字幕テキストは正確に保持されます。変更されるのはファイル形式だけです。ヘッダーの追加、タイムスタンプ区切りのカンマからピリオドへの変更、エントリー番号の削除が行われ、改行、特殊文字、テキストはすべて元のままです。