WebVTT

開く保存プレーンテキストWeb

Webの字幕形式です。ブラウザはHTMLの<track>を通じてこれを表示します。SubRipのブロック構造に、ヘッダー、ミリ秒の前のピリオド、装飾・表示位置・話者を指定する仕組みを加えたものです。

概要

拡張子.vtt
メディアタイプtext/vtt
仕様W3C、WebVTT: The Web Video Text Tracks Format(Candidate Recommendation)
時間の精度ミリ秒
文字エンコーディング常にUTF-8です。仕様でUTF-8が求められています。Subtitldはそれ以外のエンコーディングも読み取れます。
装飾斜体、太字、下線のタグ。色はクラスとCSS(::cue)で指定します。取り消し線はありません。
表示位置キュー設定(line、position、align、size、vertical)とリージョン
話者音声タグ: <v Thom>
コンテナ内MatroskaではS_TEXT/WEBVTTとして、MP4ではwvtt(ISO/IEC 14496-30)として格納されます。HLSおよびDASHストリームでも使われます。

キューの構造

ファイルは、ヘッダーと、それに続くキューで構成されます。各キューはSubRipと似たブロックで、任意の2つの部分を持ちます。

WEBVTT
 
intro
00:00:23.000 --> 00:00:24.500 line:0
<v Celia>You're a jerk,
<i>Thom</i>.
 
  1. 1 · ヘッダー

    WEBVTTを単独で、または空白と後続のタイトルとともに書き、その後に空行を入れます。これがないと、ブラウザはファイル全体を拒否します。

  2. 2 · 識別子

    任意です。キューの名前を、単独の行で指定します。SubRipと同じ番号か、単語を使えます。

  3. 3 · 時間

    開始時刻、矢印-->、終了時刻です。ミリ秒の前にはピリオドを使います。

  4. 4 · 設定

    任意です。終了時刻の後に、キューを表示する位置を指定します。

  5. 5 · テキスト

    装飾や音声を指定するタグを含めたテキストの行です。キューは空行で終わるため、キューの中に空行を入れることはできません。

タイムコード

時間は省略できます。 00:27.000も同じ時刻を表します。1時間未満のファイルでは、この書き方が多く使われています。ミリ秒の前にカンマを使うのはSubRipの癖であり、WebVTTの書き方ではありません。Subtitldはそれでも読み取れます。

キュー以外のブロック

ブロック 内容
NOTE 人間向けのコメント。再生ソフトは読み飛ばします。
STYLE キューのためのCSS。::cueを使います。最初のキューより前に置きます。
REGION キューがスクロールして表示される、画面上の名前付き領域です。

キューのテキスト

タグ 効果
<i>…</i>、<b>…</b>、<u>…</u> 斜体、太字、下線
<c.yellow>…</c> クラス。CSS(またはWebVTT独自の色クラス)で色を指定できます
<v Thom>… 声の主。誰が話しているかを示します。閉じタグは省略できます。
<lang pt>…</lang> テキストの一部分の言語
<ruby>漢<rt>kan</rt></ruby> テキストの上に表示する読み仮名。日本語や中国語で使います
<00:00:28.500> キュー内のタイムスタンプ。カラオケ表示に使います
&amp; &lt; &gt; &nbsp; アンパサンド、<、>、改行されないスペース。そのままではマークアップとして読まれてしまいます

色

CSSを使わずに色を指定できるクラスは8つあります: white、lime、cyan、red、yellow、magenta、blue、blackです。背景色には、同じ8つにbg_を付けたものを使います。それ以外の色は、独自のクラスとSTYLEブロックが必要です。

STYLE
::cue(.gold) { color: #ffd700; }

00:00:30.800 --> 00:00:34.000
<c.gold>Why don't you just admit that</c>

すべての再生ソフトがSTYLEブロックを読むわけではありません。WebVTT独自の色クラスのほうが確実です。Subtitldは、色が8つのいずれかである場合には、それらのクラスを使います。

キューの設定

設定 効果
line:0 画面上の行。数字は上端から行を数えます(負の数は下端から)。パーセントは上端からの位置です
position:10% キューの枠が画面上で横方向のどこに置かれるか
align:start 枠の中のテキストの配置: start、center、end、left、right
size:50% 枠の幅
vertical:rl 縦書きのテキスト。右から左、または左から右
region:fred REGIONの中にキューを表示します

Subtitldはline、position、alignを、字幕の画面上の位置として読み取ります。これはSubRipの{\an1}から{\an9}と同じ9つの位置です。また、書き出すときもこれらを使います。上端にはline:0、中央にはline:50%,center、左右の端にはposition:10% align:startとposition:90% align:endを使います。

WebVTTとSubtitld

.vttに保持される内容
  • 各字幕のテキストと改行
  • 斜体、太字、下線、色
  • 画面上の表示位置
  • 話者(音声タグとして)
  • 開始時刻と終了時刻(ミリ秒単位、順序どおり)
保持できない内容
  • 取り消し線: WebVTTにはそのためのタグがありません
  • 話者の顔と色
  • 原文の横に並ぶ翻訳(翻訳で置き換えるか、原文の下に配置できます)
  • 吹き替えとメタデータ

これらを残すには.usfxプロジェクトとして保存してください。

WebVTTファイルを開く

Subtitldは、各キューをタイミングの行で見つけ、次の内容を読み取ります。

  • ヘッダー、NOTE、STYLE、REGIONのブロックは字幕ではなく、それぞれの役割として扱います。キューの識別子は名前として扱います。
  • 時間は、時間の有無、ピリオドまたはカンマにかかわらず読み取ります。
  • 音声は字幕の話者として扱い、吹き替え用に準備します。
  • WebVTTの色クラスと、STYLEブロックが他のクラスに与える色を読み取ります。
  • line、position、alignを、画面上の位置として読み取ります。
  • WebVTTはUTF-8を求めていますが、任意のエンコーディングを読み取ります。

Subtitldが扱えない内容は省かれます。リージョン、キューのサイズ、縦書き、ルビの読み仮名、カラオケのタイムスタンプが該当します。テキストそのものは残ります。

WebVTTの書き出し

Subtitldの書き出しダイアログ。VTTが選ばれ、話者が音声タグとして書き出されている

エクスポート、次に字幕、そしてVTTを選ぶと、次のオプションが表示されます。

  • テキスト原文、翻訳、または両方(翻訳は原文の下に配置)。
  • 話者名省くか、テキストの前に付けるか(Thom: …)、またはWebVTT独自の方法である音声タグ(<v Thom>)として書き出します。
  • 書式残すか、取り除きます。
  • 時間をずらすすべての字幕を、同じ量だけ早めたり遅らせたりします。

ファイルは、WebVTTの要件どおり常にUTF-8です。WEBVTTの後に、開始時刻の順に並んだキューが続き、すべての時刻には時間が付きます。マークアップとして読まれてしまう文字は実体参照で書かれ、空の字幕は省かれます。

Webページでの利用

<video controls src="tears-of-steel.mp4">
  <track kind="subtitles" src="tears-of-steel.en.vtt"
         srclang="en" label="English" default>
</video>

ファイルはtext/vttとして配信してください。別のドメインから読み込む場合は、動画にcrossoriginを指定し、サーバーがAccess-Control-Allow-Originヘッダーを返す必要があります。そうでなければ、ブラウザはトラックを読み込みません。

WebVTTかSubRipか

再生ソフト、エディタ、アップロードにはSubRip、Web上の動画にはWebVTTを選んでください。両者を並べて比較した内容はSubRipのページにあります。

豆知識

2010

WHATWGでHTML5の新しい<track>要素のために検討されたWebSRTとして始まり、SubRipを土台にしていました。その後、WebVTTという名前になりました。

WEBVTT

すべてのファイルの先頭にある6文字です。ブラウザはこれを見つけられないと、トラック全体を拒否します。

8

CSSなしで再生ソフトが表示できる色: white、lime、cyan、red、yellow、magenta、blue、blackです。テキストにも背景にも使えます。

関連する形式

.vtt の修正が必要ですか?

Subtitld で動画と一緒に開き、波形上でタイミングを調整しましょう。

Subtitld をダウンロード