データコンバーター · 5 分で読みました
SRT ~ VTT: ブラウザが実際にロードする字幕
HTML5 ビデオ要素は SRT ファイルを無視します。ブラウザの `<track>` 要素は WebVTT をロードしますが、他には何もロードしません。したがって、SRT から VTT への変換は、Web 上でビデオを公開する際の日常的な手順であり、2 つの形式間の違いは予想よりも小さいため、変換をブラック ボックスとして扱うのではなく、理解する価値があるのです。
更新されました
SRT と VTT の間で何が変わるのか
- ヘッダー - WebVTT ファイルは `WEBVTT` 行で始まり、オプションでその後にタイトルが続きます。
- タイムコード — SRT は、ミリ秒の前にカンマを付けて `00:00:12,500` を書き込みます。 VTTは`00:00:12.500`をドットで書きます。
- キュー識別子 — どちらもキューの上にオプションの名前を付けることができます。 VTT にすると、スクリプト作成にさらに便利になります。
- 終了タイムコード — SRT では必須。 VTT は次のキューから終了を推測できますが、明示的な方が安全です。
- 追加機能 — VTT は、行の位置、配置、テキスト マークアップなどのキュー設定を追加します。
スタイリングと安全なマークアップ
WebVTT では、キュー内で制限されたタグのセット (`::cue` を介して CSS でスタイル設定するクラスの `<b>`、`<i>`、`<u>`、および `<c.classname>`) を許可します。それ以外のものはリテラル テキストとしてレンダリングされる可能性が高くなります。これは、変換時にマークアップを目に見える山かっこにエスケープするのではなく、単純な書式設定が存在する場合は保持し、その書式で表現できないものを削除する必要がある理由でもあります。
WEBVTT
00:00:12.500 --> 00:00:15.000 align:start
That was the point.
再生以外にも重要な理由
キャプションはほとんどのプラットフォームでアクセシビリティ要件であり、インデックス付きの素材でもあります。テキスト トラックは、音声だけでは提供できない機械可読スクリプトを検索エンジンとアシスタントに提供します。したがって、正しくエンコードされた `<track kind="captions">` は、コンプライアンスを満たし、ビデオに他の方法では欠けているテキストの存在感を与えるという 2 つの役割を果たします。
エンコーディングが重要です。VTT は、適切な文字セットを使用した UTF-8 として機能します。従来のエンコーディングで保存されたアクセント付き文字を含むファイルは、プレーヤーではモジバケとしてレンダリングされ、エンコーディングの問題ではなく変換バグのように見えます。
実際のワークフロー
- SRT を VTT に変換し、最初と最後のキューが正しいタイムコードであるかどうかを確認します。
- .vtt 拡張子を付けて UTF-8 として保存し、サーバーを制御する text/vtt コンテンツ タイプで提供します。
- `<track kind="captions" srclang="en" label="English"default>` で video 要素から参照します。
- デプロイ後も相対パスが機能し続けるように、ビデオ ファイルと一緒にキャプション ファイルをアップロードします。
オフラインでもインスタントでも
字幕ファイルは大きなテキスト ドキュメントであり、多くの場合未公開の作品です。レビュー カットのスクリプトはどこにもアップロードすべきではありません。このサイトの SRT から VTT へのコンバータはブラウザで実行されるため、2 時間のトランスクリプトはマシンを離れることなく、ほんの数秒で変換されます。
SRT ~ VTT — よくある質問
ビデオプレーヤーが字幕ファイルを無視するのはなぜですか?
ほとんどの場合、ファイルは WebVTT ではなく SRT であるためです。 HTML5 `<track>` は VTT のみを受け入れます。 VTT に変換し、ファイルが WEBVTT 行で始まることを確認してから、タイムコードがカンマではなくドットを使用していることを確認します。
YouTube やその他のプラットフォームには VTT が必要ですか?
YouTube は SRT と VTT の両方のアップロードを受け入れ、内部で変換しますが、ほとんどの自己ホスト型プレーヤーとすべての HTML5 ビデオ要素には WebVTT が必要です。アップロード前に変換すると、キャプションはどこでも同じようにレンダリングされます。
WebVTT はスタイル設定できますか?
はい — キューテキスト内では、太字、斜体、下線タグに加えてクラススパンを使用でき、`::cue` 疑似要素に対して CSS を使用してクラスのスタイルを設定できます。位置決めは、ライン、位置、整列などのキュー設定で制御されます。
この投稿で言及されているツール
さらに読む記事
5 分で読みました
Markdown テーブル: パイプを数える代わりにテーブルを生成し
行またはスプレッドシートから GitHub 風味のマークダウン テーブルを構築します。整列、パイプのエスケープ、および README にテーブルが間違った選択である場合に使用します。
6 分で読みました
JSON フォーマッタ: 美しく、縮小され、実際に有効です
正確なエラー位置に加えて、ほぼすべての無効な JSON エラーの背後にある 5 つの構文ミスを含めて、整形表示、縮小、および検証を行う JSON フォーマッタ。