SRT 字幕を WebVTT に変換する方法
ファイルを字幕ツールキットにロードし (形式は自動的に検出されます)、他の形式でダウンロードします。タイミングは整数ミリ秒として内部的に保持されるため、変換は正確であり、ラウンドトリップによってドリフトが蓄積されることはありません。
ファイルの名前を変更しても機能しません。 WebVTT ファイルはリテラル行 WEBVTT で始まる必要があり、ミリ秒の前にカンマではなくピリオドを使用する必要があります。名前が変更された SRT を渡されたブラウザには通常、何も表示されず、その理由を説明するエラーも表示されません。
実際に再生を中断する 3 つの違い
まずはヘッダー。 WebVTT ファイルは、最初の行が WEBVTT という単語で始まります。 SRT にはヘッダーがなく、最初のキューから始まります。この 1 行の欠落が、変換されたファイルがブラウザーでサイレントに失敗する最も一般的な理由です。
2 番目はミリ秒区切り文字です。 SRT は、カンマを付けて 00:00:01,500 を書き込みます。 WebVTT は、ピリオドを付けて 00:00:01.500 を書き込みます。プレーヤーは、一方を期待していて、もう一方を与えられた場合、通常、そのキューを拒否します。
3 番目に、キューの番号付けです。 SRT は従来、各タイムスタンプの前に整数を独自の行に置きます。 WebVTT では、その識別子はオプションであり、存在する場合は数値ではなく任意の文字列にすることができます。
それほど重要ではない小さな違いもあります。 WebVTT では時間コンポーネントを省略できるため、01:30.000 は 90 秒を意味します。 line:90% align:center など、タイムスタンプの後のキュー設定もサポートします。
変換後に何が残り、何が残らないのか
- タイミングは両方向で正確に維持されます。どちらの形式も整数のミリ秒を表します。
- キュー内の改行は存続します。これらは読みやすさに重要であり、保存されます。
- line や align などのキュー設定は VTT に残り、SRT にはドロップされます。これは、SRT にはそれらを表現する方法がないためです。
- 同じ理由で、WebVTT STYLE ブロックと REGION ブロックは変換されずにスキップされます。
- キュー番号はエクスポート時に 1 から連続して再番号付けされ、手動で編集したファイルに蓄積されるギャップや重複が修正されます。
検証はロード時に行われます
すべてのファイルはロード時にチェックされ、結果がプレビューの上に表示されます。 900 個のキューを含むファイルでは「このファイルは無効です」というメッセージは役に立たないため、各メッセージには特定のキュー番号が付けられます。
エラーは本物の破損です。キューが開始する前に終了したり、キューが前のキューより前から始まったり、タイムスタンプを読み取れなかったりします。警告は技術的には有効ですが、通常は意図されていません。つまり、表示されない持続時間ゼロのキュー、または 2 つのキューが重なって両方が同時に表示されるなどです。
不正な形式のキューによってファイルは中止されません。不良ブロックが報告され、残りは引き続きロードされるため、一度に 1 つのクラッシュでエラーを修正するのではなく、1 回のパスで問題の規模がわかります。
途中でフォーマットを削除する
字幕ファイルには、斜体や太字などの HTML に似たタグ、WebVTT クラスと音声タグ、位置を制御する SubStation オーバーライド ブロックなどのマークアップが含まれることがよくあります。
フォーマットの削除アクションは、各キュー内の改行を維持しながら、これらをすべて削除します。 & などの文字エンティティは、書式設定ではなくコンテンツであるため、意図的にそのまま残されています。
実用的な例: HTML5 ビデオ要素のキャプション
文字起こしサービスから episode-01.srt を取得しており、Web ページ上のビデオにキャプションが必要です。このページでは、WebVTT を必要とする track 要素を使用します。
SRT ファイルは次のように始まります。
1 / 00:00:02,000 --> 00:00:04,500 / ショーへようこそ。
- episode-01.srt を字幕ツールキットにロードします。フォーマットが検出されました。キュー数と検証メッセージが表示されます。
- エラーとして報告されたものはすべて修正します。重複に関する警告は一見の価値がありますが、再生がブロックされることはほとんどありません。
- VTT としてダウンロードします。
結果: WEBVTT という行で始まり、タイムスタンプが 00:00:02.000 --> 00:00:04.500 というピリオド付きのキューが続くファイル。キューの番号は 1 から再割り当てされ、テキストとその内部の改行は変更されず、タイミングはミリ秒と同じになります。
ツールを開く
ブラウザ内で解析して書き換えます。これは、禁輸下のキャプションにとって重要です。文字起こしや翻訳はしません。
これでカバーされないもの
- SRT と WebVTT のみ。 ASS および SSA、TTML、SAMI、および埋め込みブロードキャスト キャプション形式は、読み取りも書き込みもできません。
- キューの位置は VTT 出力に対してのみ保持されます。 SRT にエクスポートすると削除されます。
- STYLE ブロックと REGION ブロックは変換されずにスキップされます。
- このツールは、既存の字幕ファイルを変換します。音声の文字起こしや翻訳は行いません。
- キュー番号はエクスポート時に常に再番号付けされるため、意図的に連続していない番号が付けられたファイルではその番号が失われます。