日本語

ビデオと字幕 · 字幕ツールキット

WebVTT の説明: WebSRT から HTML5 ビデオの W3C キャプション形式へ

· 背景

字幕 webvtt ファイル形式 ブラウザ処理

WebVTT ヘッダー、設定、ブラウザー トラック接続を取得するプレーン キュー ファイル
オリジナル ToolAcre ベクトル イラスト

WebVTT は、ブラウザーがキャプションをネイティブに表示できるように作成されました。この投稿では、WebSRT としてのその起源、SRT との違い、仕様で追加された内容、および今日どこで使用されているかについて説明します。

ブラウザーに独自のキャプション形式が必要な理由 — ネイティブビデオの登場と標準トラック形式の不在

ネイティブ ビデオは Web ページにメディア要素を与えましたが、タイミング テキストには依然としてブラウザーがフェッチして解析できる相互運用可能なファイル表現が必要でした。非公式の SRT ファイルでは、定義された構文、キュー動作、およびプレゼンテーション用のフックを必要とするブラウザー機能には十分ではありませんでした。 WebVTT は、認識可能なキューとタイムスタンプの形状を維持しながら、Web 向けのコントラクトを提供します。

このブラウザーのコンテキストは、その使いやすさと追加の構造の両方を説明しています。最小の VTT は SRT に似ていますが、別の拡張子を持つ SRT ではありません。署名、タイムスタンプの句読点、およびキュー文法は、ブラウザが WebVTT を受信したかどうかを判断する要素の一部です。

WebSRT と WebVTT への名前変更 - 初期の WHATWG 作業と W3C への移行

この形式は、WebVTT (Web Video Text Tracks) になる前に、以前の WebSRT という名前で議論されました。その系統はデザイン パスを伝えます。広く理解されている字幕ブロックの形状から始まり、次に Web メディアに必要な追加の動作を定義します。この記事では、日付、編集者の名前、および標準化団体の詳細な年表は避けています。これらの事実は、実装の主張に使用されたリポジトリ資料によって検証されていないためです。

フロントエンド開発者にとって永続的な教訓は、WebVTT はプレーヤー固有の規則ではなく、ブラウザー メディア機能への入力として指定されているということです。実装は、過去のラベルに依存するのではなく、現在の構文をターゲットにし、使用するプレーヤーでテストする必要があります。

仕様が SRT に追加するもの — WEBVTT ヘッダー、キュー識別子、キュー設定、およびスタイリング フック

WebVTT は、必須の WEBVTT 署名を追加し、数値である必要のないキュー識別子を許可します。キュー設定は終了時間に従って配置と配置を表現できますが、NOTE、STYLE、REGION ブロックはプレーンな SRT キュー リストを超えたメタデータとプレゼンテーション構造を提供します。ブラウザのスタイル フックは、ビデオにテキストを焼き込むことなく、表示されたキューに対処できます。

ToolAcre は、焦点を当てたサブセットを実装します。終了タイムスタンプ以降に見つかった設定は保持されますが、キュー識別子は削除され、読み込み時にNOTE、STYLE、およびREGIONブロックがスキップされます。通常の変換にはこれで十分ですが、完全な WebVTT モデル用のロスレス エディターとしては意図的に使用していません。

ドット、ヘッダー、および UTF-8 — SRT ファイルが有効な VTT ファイルであることを妨げる小さな違い

3 つの小さな詳細により、最小限の VTT と SRT が区別されます。最初の行には WEBVTT 署名が含まれている必要があり、タイムスタンプはミリ秒の前にピリオドを使用し、テキストは UTF-8 である必要があります。 ToolAcre は、オプションのバイト オーダー マークと先頭の空白を許容しながら、署名をテストすることで VTT を検出します。その署名のないテキストはデフォルトで SRT になります。

シリアライザーは、ソースが使用したものをそのまま保持するのではなく、署名とドット句読点を書き込みます。ファイル入力は UTF-8 として読み取られます。したがって、レガシー エンコードされた SRT は、変換前に置換文字を表示する可能性があり、そのコンテナ構文を変更しても、すでに誤ってデコードされたバイトを回復できません。

WebVTT が使用される場所 — HTML5 トラック要素、HLS キャプション、および多くのビデオ プラットフォーム

WebVTT は、HTML ビデオ トラック要素に関連付けられたサイドカー形式であり、時間指定されたテキストを消費する Web 配信システムに表示されます。一部のストリーミングおよびプラットフォームのワークフローでも WebVTT が使用されますが、受け入れの詳細は宛先に属しており、拡張機能から推測するのではなく、そこで確認する必要があります。有効な VTT ファイルでも、間違ったメディア タイプで提供されたり、クロスオリジン配信ルールによってブロックされたりする可能性があります。

ツールキットはファイル表現を生成します。 HTML ページ、サーバー ヘッダー、ストリーミング マニフェストは構成されません。コンバージョンを配信の 1 段階として扱い、視聴者が使用するものと同じ URL、ヘッダー、オリジン関係を使用して実際のプレーヤーをテストします。

これでカバーされないもの — ほとんどのキャプション ファイルでは使用されない完全なスタイルと領域モデル

完全なスタイルおよび領域モデルは、このコンバーターの外部にあります。複雑なキュー セレクター、領域レイアウト、およびプレゼンテーション ポリシーには、WebVTT 対応のオーサリング ツールとブラウザーのテストが必要です。パーサーは STYLE ブロックと REGION ブロックをスキップするため、このパスを介してそのようなマスターを送信すると、それらは目に見えずに保存されるのではなく、いずれかの出力から削除されます。

SRT にはキュー設定に作用するメカニズムが定義されていませんが、このツールはキュー設定を SRT 出力に組み込みます。この文書化された制限は、配置が重要な場合には常に元の VTT マスターを保持する理由であり、すべての宛先が同様に余分なテキストを無視すると仮定する理由ではありません。

要点: Web の真の標準 — 字幕ツールキットがそれに従う WebVTT を生成する方法

WebVTT は、よく知られたタイムテキスト パターンを定義された Web 入力に変換します。署名はそれを識別し、タイムスタンプ文法は標準的であり、キュー モデルはプレーン シーケンシャル テキスト以上のものを運ぶことができます。 Subtitle Toolkit は、時間をミリ秒単位で解析し、識別子行なしで WEBVTT ヘッダー、ドット区切り記号、およびキューを書き込むことによって、SRT から最小限の正規ファイルを生成します。

ソースと出力のキュー数を比較し、結果をプレーヤーにアタッチする前にすべての解析の問題を読み取ります。ソースがコメント、リージョン、スタイル ブロック、または識別子に依存している場合は、それらの機能を保持するワークフローを選択してください。焦点を絞ったコンバーターは、完全な往復忠実度を暗示するのではなく、その境界を明示する必要があります。