LoginSignup
27
28

More than 3 years have passed since last update.

(字幕)HTML5 video および audio 用の Caption

Last updated at Posted at 2016-11-27

種類

W3C によって開発された 2 つの形式があります。

種類 拡張子 MIME type format
WebVTT .vtt text/vtt UTF-8 plain text
TTML .ttml application/ttml+xml XML

WebVTT

W3C> WebVTT: The Web Video Text Tracks Format

用途

  • HTML5 の track 要素の外部リソース

利点

  • TTML と比べて相対的に記述量が少ない
  • ぱっと見のわかりやすさ

TTML

W3C> Timed Text Markup Language 1 (TTML1) (Second Edition)
W3C> Timed Text Markup Language 2 (TTML2)

用途

  • HTML5 の track 要素の外部リソース
  • SMIL 3.0 の text または textstream 要素の外部リソース

利点

  • XML API を用いてプログラムでファイルを書き換えるなどに適している

お勧め

HTML5 で外部ファイル利用するなら、WebVTT のほうがシンプルで扱いやすいと思います。
後述しますが、WebVTT ならブラウザでの対応状況も問題ないようです。

追記:

そもそも主要な最新ブラウザは track タグで TTML をサポートしていないようなので、WebVTT 一択となりそうです。TTML 利用できるのは IE ぐらいかも。

利用方法

HTML5 の video および audio 要素の子要素として track 要素を定義して、その要素から外部リソースとして参照します。今のところ、video 要素だけに用いられることが多いようです。

もちろん、静的な外部リソースとして定義するだけでなく、javascript を使って動的に追加したり、設定されているものを読み取ったりもできます。

HTML5 track 要素

<video src="foo.ogv">
  <track kind="captions" label="English" src="captions_en.vtt" srclang="en"></track>
  <track kind="captions" label="Japanese" src="captions_jp.vtt" srclang="ja" default></track>
</video>

track の src 属性に .vtt や .ttml ファイルを指定します。

kind 属性値

subtitles、captions、descriptions、chapters、metadata のいずれかを設定可能。

定義 説明
subtitles いわゆる字幕。翻訳字幕としての利用など。
captions 字幕 + 説明(発話者、効果音、状況説明)。聴覚障碍者向けなど。
descriptions 動画の視覚的な構成説明。
chapters 章タイトル。目次ジャンプに利用など。
metadata 表示目的ではなく、script から内部的に利用するなど。

おまけ@関連用語

語句 説明
オープンキャプション 誰がいつ見ても字幕が見えるもの、例えばニュースのテロップ等、常にテレビの画面に表示されているもの。
クローズドキャプション 必要な人が必要に応じて字幕が見えるもの。機器のリモコンで ON/OFF を切り替えるなど。

WebVTT サンプル

基礎

WEBVTT

00:01.000 --> 00:05.000
おーい。誰かいませんか?

00:06.000 --> 00:11.000
- 何も返事がありません。
- 誰もいないようです。
  • WEBVTT で始まる
  • 表示開始時間 --> 終了時間
  • 1 行以上のテキスト

他にも以下のようなことができます

  • css で表示スタイルを変えられます
  • 画面には表示されないコメントも書けます
  • 表示タイミングはオーバーラップ可能です

応用

WEBVTT

1
00:00:05.000 --> 00:00:08.000
<v 太郎>はい、太郎です。</v>

2
00:00:08.000 --> 00:00:13.000 line:63% position:72% align:start
<v 花子>花子です。久しぶり。</v>

3
00:00:13.000 --> 00:00:16.000 line:0 position:20% size:60% align:start
<v 太郎>久しぶり。どうしたの?</v>

4
00:00:16.000 --> 00:00:19.000 vertical:rt line:-1 align:end
<v 花子>来月の同窓会行けそう?</v>

  • 識別子が付けられます
  • 表示場所などのオプションを指定できます(ブラウザ対応はまちまち)
  • タグで意味づけできます

safari.gif

TTML サンプル


<?xml version='1.0' encoding='UTF-8'?>
<tt xmlns='http://www.w3.org/ns/ttml' xml:lang='en' >
<body>
<div>

<p begin="00:00:01.567" end="00:00:03.987" >こんにちは。</p>
<p begin="00:00:10.098" end="00:00:13.214" >やあ。<br/>久しぶり!</p>
</div>

</body>
</tt>

ブラウザ対応

WebVTT

WebVTT なら、だいたいどのブラウザでも対応しているようです。
caniuse > webvtt
caniuse_WebVTT.png

TTML

IE10 以降ではサブセット(基本的な情報)を表示できます。
caniuse では、対応状況を確認できなかったこともあり、きちんと調べていません。

参考リンク

基礎

応用

27
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
28