分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
VTT
HTML5 の動画が求める字幕形式。ヘッダーと書式の選択肢が付いた SRT です。
VTT
VTT はプレーンテキスト形式です。どのエディターでも開けます。 字幕制作とウェブのために使われます。
拡張子は .vtt、正式名称は WebVTT です。ただしどちらも、そのファイルが中に何を持てるかほどには多くを語りません。このページの残りは、その中身についての話です。
W3C が 2010 年に公開しました。 仕様は WebVTT です。
古さが役に立つのは、ごく実務的な理由からです。形式が古いほど、それを覚える時間が多くのプログラムに与えられてきたということだからです。
仕様書がそのまま公開されているので、中身を推し量るのではなく文書を読んで実装できます。この形式が数多くのプログラムに載っているのはそのためであり、20 年前に書かれたファイルが今も開けるのもそのためです。ただし「仕様が公開されている」ことと「使用料が要らない」ことは別の話です。中でコーデックを包んでいる形式では、特許のライセンスは仕様書が答えていない別の問題として残ります。
VTT ファイルは中身をそのまま保存します。保存し直しても何も変わらないので、開いて、直して、また保存する——それを何度繰り返しても劣化は積み上がりません。これが、渡すための形式ではなく作業のための形式である理由です。
VLCとSubtitle Editが読めますし、同じ種類のプログラムならたいてい読めます。
ファイルが開かないとき、形式が悪いことはめったにありません。たいていはプログラムのほうが形式より古いのです。もっと古い形式に変換してしまうのが確実な逃げ道で、このサイトの残りの部分はそのためにあります。
これは今のブラウザーならどれでも読めます。
ですからページに置くのも、メッセージに添えて送るのも、安心してできます。相手が何をインストールしているかを考える必要がありません。
VTT は、開いて手を入れるために作られています。作業が続いているあいだはこの形式でファイルを持ち、完成したものが必要になるたびに、ここから書き出してください。
HTML の video は、VTT ファイルを指す track 要素を通じて字幕を受け取り、これが唯一受け付ける字幕形式です。SRT でも ASS でもありません。どちらを渡してもブラウザーは無視します。この一点だけで、このページへのアクセスの大半を説明できます。字幕を持っていて、ウェブページ上で動画の隣に置いたのに、何も表示されない、という状況です。
この形式自体は、変換を簡単にするために意図的に SubRip に近づけられています。項目の番号は必須ではなく任意で、タイムスタンプはミリ秒の前がコンマではなくピリオドで、ファイルは最初の一行に単独で WEBVTT という単語を持つ必要があります。このヘッダーは飾りではありません。これがないファイルは丸ごと拒否されます。
確認する価値のある順に、原因は四つあります。WEBVTT ヘッダーが欠けている場合で、たいてい SRT を改名しただけのファイルだからです。タイムスタンプが今もコンマを使っている場合も同じ理由です。track 要素に kind と srclang の属性が設定されていない、あるいは default 属性がなく視聴者が字幕を一度もオンにしていない場合。そして一番時間を無駄にするのが、ページとは別のオリジンから配信されていて、正しいクロスオリジンのヘッダーがなく、ブラウザーが静かに拒否している場合です。
最後のケースは特に立ち止まる価値があります。目に見えるエラーが何も出ないからです。動画は再生され、字幕メニューは空で、ページの中にはその理由を示すものが何もありません。ページと同じオリジンから VTT を配信すれば、この問題はまるごと避けられます。別のアセット用ドメインではなく、動画と同じ場所に字幕を置く一番単純な理由です。
すべてのキューは、タイムスタンプの後に設定を持てます。垂直位置、水平の整列、幅、行番号です。これは SRT には表現しようのないもので、単なる書き起こし以上のものが必要な場面で VTT を選ぶ実務上の理由です。
よくある使い道は、キャプションを邪魔にならない場所に動かすことです。字幕は既定で下部に表示されますが、そこはまさに放送局がロワーサードを置く場所であり、動画プレーヤーが自分のコントロールを置く場所でもあります。その数秒間だけキューを上部に押し上げる行設定は、ファイルにわずか二単語加えるだけで済み、他の場所でどれだけスタイルを整えても解決できない問題を解決します。
VTT は太字、斜体、下線といった少数のインラインタグと、話者を名指しするボイスタグを許容していて、これによって書き起こしは、文中に名前を書かなくても二人の話者を区別できます。ファイル内のスタイルブロックや、キューの疑似要素を対象にしたページ側の CSS で、フォント、色、背景を設定できます。
ブラウザーが実際にどこまで尊重するかはまちまちで、これはこの仕様の中でも実装が最も弱い部分です。斜体と話者の区別はどこでも動くと想定し、それ以上は補強程度に考えてください。スタイルが無視されると読めなくなる字幕トラックは、この形式を活かすのではなく、この形式に逆らって設計されています。
VTT ファイルは字幕を含む必要さえありません。track 要素は kind 属性を持ち、それ以外の値も本当に役立ちます。chapters は対応するプレーヤーで移動可能な区切りの一覧を作り、descriptions はスクリーンリーダー向けの音声解説テキストを運び、metadata は動画の再生中に JavaScript が反応できる任意のキューを運びます。
最後のものが、対話的な書き起こしや同期したスライド、タイミング付きの注釈を作る仕組みです。キューは再生位置がそこに達したときに発火し、ページはそれに対して好きなことをでき、ページ自身が表示しない限り何も表示されません。字幕形式の中に隠れた、小さなスケジューリングの仕組みです。
track 要素はキャプションと字幕を区別していて、これは些末なこだわりではありません。字幕は視聴者が聞き取れて翻訳が必要だと想定します。キャプションは視聴者が聞き取れないと想定し、そのため台詞以外の情報 — ドアが閉まる音、音楽が始まったこと、画面外で誰が話しているか — も含みます。
多くの公的機関や増え続ける企業にとって、録画済み動画のキャプションは、WCAG とそれを参照するアクセシビリティ法制のもとで、心遣いではなく要件です。翻訳された台詞だけを含むトラックに「キャプション」というラベルを付けても、マークアップ上は満たしていても、義務は満たしません。これは監査人が見逃さない違いです。
たいていは自動文字起こしです。主要なプラットフォームや多くの書き起こしサービスは WebVTT を書き出せ、機械の出力は修正する価値があるほどには十分でも、読まずに公開できるほどではありません。固有名詞、重なり合う会話、専門用語がつまずきやすい部分で、それらはたいてい意味を運ぶ言葉です。
もう一つの経路は変換です。字幕の編集はデスクトップの字幕ソフトでは SRT のほうがずっと対応が充実しているため、SRT で修正・タイミング調整をしてから公開時に VTT へ変換する、というよくある作業手順があります。片方を原本、もう片方を生成物として扱っている限り、これは理にかなった役割分担です。二つのコピーが静かにずれていくのでなければ、の話です。
| 拡張子 | .vtt |
|---|---|
| メディアタイプ | text/vtt |
| 公開元 | W3C |
| 初版 | 2010 |
| 仕様 | WebVTT |
順に四つ確認してください。ファイルが単独の行として WEBVTT で始まっているか、タイムスタンプのミリ秒の前がコンマではなくピリオドか、track 要素に kind と srclang が設定されているか、そしてファイルがページと同じオリジンから、あるいは正しいクロスオリジンヘッダー付きで配信されているかです。最後のものはエラーも出さずに失敗します。
よくありません。ファイルは WEBVTT というヘッダー行で始まる必要があり、タイムスタンプのミリ秒の前はコンマではなくピリオドである必要があります。改名するとブラウザーが拒否するファイルになります。変換すれば一瞬でどちらも直ります。
VTT はウェブページ上の動画にブラウザーが受け付ける形式で、位置指定、整列、話者ボイス、スタイルを追加できます。SRT はデスクトップのプレーヤーやテレビ、アップロードプラットフォームが期待する形式で、スタイルは一切ありません。それ以外の構造はよく似ていて、変換は難しくありません。
タイムスタンプの後にキュー設定を追加してください。line 設定でキューを垂直方向に、align 設定で水平方向に動かせます。これが VTT にできて SRT にはできない主なことで、キャプションを画面上の文字やプレーヤーのコントロールと重ならないようにする方法です。
字幕は視聴者が聞き取れることを前提に台詞を運びます。キャプションは聞き取れないことを前提に、誰が話しているか、画面外で何が聞こえるか、音楽がいつ始まるかといった音の情報も加えます。アクセシビリティの要件はキャプションを求めていて、台詞だけを含む「キャプション」ラベルのトラックはそれを満たしません。
使えます。同じ形式でチャプター、音声解説、任意のタイミング付きメタデータを運べ、track 要素の kind 属性で選択します。metadata のキューは動画の再生中に発火し、JavaScript で受け取れます。これが対話的な書き起こしやタイミング付きの注釈を作る仕組みです。