サポート問い合わせ先| システムステータス
ページコンテンツ

WebVTTキャプションの同期

このトピックでは、HLSビデオのWebVTTキャプションを構成して、オーディオとビデオを字幕と同期させる方法を学習します。

概要

Web ビデオテキストトラック (WebVTT) ファイルは、キャプション、字幕、説明などを動画内の時間セグメントに関連付けるために使用される単純なテキストファイルです。

WEBVTT

  00:00:03.50 --> 00:00:05.000 align:middle line:84%
  In this video, you'll learn
  about how Video Cloud Studio is
HTML

WebVTT ファイルの追加について詳しくは、ビデオへのキャプションの追加ドキュメントを参照してください

メタデータヘッダーを追加する

HLS 仕様の一部として、オーディオとビデオのタイムスタンプを字幕と同期させるために、各 WebVTT X-TIMESTAMP-MAPヘッダーにメタデータヘッダーを追加する必要があります。

このヘッダーがない場合、MPEGTSまたは値が正しくない場合は、字幕が動画と同期していない可能性があります。これは、X-TIMESTAMP-MAPヘッダーが見つからない場合、クライアントはデフォルトのタイムスタンプオフセットを 0 と仮定するためです。たとえば、 900000 0 の値を使用した場合の違いにより、キャプションが 10 秒オフになる可能性があります。

X-TIMESTAMP-MAPフォーマット:

X-TIMESTAMP-MAP=MPEGTS:<MPEG-2 time>,LOCAL:<cue time>
Swift

WebVTT ファイルのサンプルを次に示します。

WEBVTT
X-TIMESTAMP-MAP=MPEGTS:900000,LOCAL:00:00:00.000

1
00:00:03.500 --> 00:00:05.000 align:middle line:84%
In this video, you'll learn
about how Video Cloud Studio is
Swift

詳細については、Apple の HLS プロトコルドキュメントの「字幕セグメント」セクションを参照してください。

オフセット値を決定する

Brightcoveのダイナミックインジェストまたは Zencoder を使用してコンテンツをトランスコードする場合は、オフセット値を使用しますMPEGTS:900000

Zencoder 以外のエンコーディングシステムを使用している場合は、必要な値を取得することをお勧めします。Apple では、エンコードされたビデオに合わせてオフセットを設定することをお勧めします。

MPEGTSこの値は、LOCAL指定された時間における MPEG フレームのプレゼンテーションタイムスタンプ (PTS) の値に対応します。Brightcoveのレガシーインジェストシステムを使用している場合は、の値を使用できますMPEGTS:0

アカウントが有効になっている場合動的配信、そしてあなたは私たちと一緒にキャプションをホストしています (非リモートキャプション)、次にすべてを自動的に魔法のように機能させます(PTSはゼロである必要があり、確実にゼロにする必要があります)。

アカウントで動的配信が有効になっていて、を使用している場合リモートキャプションの場合、PTS値をゼロに設定する必要があります。

たとえば、オフセット値を取得するには、次のようにします。

リクエスト 1:

ターミナルで、HLS ビデオを取得し、ローカルファイルに保存します。この場合、seg.ts私たちはそれを命名しています。

curl -o seg.ts "http://brightcove.vo.llnwd.net/v1/unsecured/media/4360108595001/201507/1154/4360341622001/4360108595001_4360341622001_s-1.ts?pubId=4360108595001&videoId=4360283683001"
HTTP

リクエスト 2:

次に、ffprobeコマンドを使用して、オフセット値を取得します。ffprobeは、 FFmpeg フレームワークの一部であるマルチメディアストリームアナライザです。これをコンピュータにダウンロードしてインストールする必要があります。

ffprobe -show_frames seg.ts
HTTP

応答:

回答は次のようになります。

pkt_pts=900000
pkt_pts_time=10.000000
pkt_dts=900000
pkt_dts_time=10.000000
HTML

ベストプラクティス

以下のガイドラインは、キャプション付きのアプリを開発する際に役立ちます。

キャプション期間

キャプションのデュレーションは、動画の再生時間を超えないようにすることをお勧めします。これにより、ビデオの再生が完了した後、キャプションを表示したり、プログレスバーに表示できない領域が表示されなくなります。


ページの最終更新日04 Oct 2021