ビデオ内をシークする

適用対象:
HTTP Large

HTTPプログレッシブダウンロードでは、FLVおよびH.264でエンコード済みのビデオ (MP4、F4VおよびMOVなど) に対してシーク機能が提供されます。この機能により、リクエストしたユーザーエージェント (ウェブブラウザなど) によってビデオが既にキャッシュされているかどうかに関わらず、クライアントはビデオの特定の位置をシークすることができます。さらに、プログラム的に特定の時点からビデオを開始することができます。

重要な情報:

必須パラメーター (メディアプレイヤー)

ビデオプレイヤーは、スクラブバー (a.k.a. seekバー) を使って操作することができます。スクラブバーの希望の位置をクリックして、ユーザーはビデオの特定の位置に飛ぶことができます。ただし、この機能を利用するには、ネイティブパラメーターではなく「ec_seek」を使用することをビデオプレイヤーに知らせる必要があります。以下は、JW Playerでこの設定を行う方法の例です。

注:JW Player 5.xを設定する方法に関する情報については、付属の文書をご確認ください。

注:JW Player 6を使用する場合は「ec_seek」パラメーターは必要ありません。

注:別のビデオプレイヤーを設定する場合は、シークパラメーター (http.startparamなど) が異なる点にご注意ください。目的のプレイヤーに付属の文書を参照してください。

「ec_seek」パラメーターの使用をビデオプレイヤーで設定すると、ビデオを飛ばしてまだコンピューターにダウンロードされていない部分に移動することができます。そのためには、プレイヤーに固有のシークパラメーターを使用します。例えば、JW Playerでは以下のコードフラグメントに示すように「start」を使用します。

file:"http://wpc.0001.{Base Domain}/000001/Video01.mp4",

'http.startparam':'ec_seek',

start:30

注:上記のサンプルコードは、リクエストされたビデオがH.264フォーマットを使ってエンコードされたことを想定しています。30秒間H.264エンコード済みビデオにシークします。

注:上記のシナリオは、ユーザーがビデオを飛ばしてまだコンピューターにダウンロードされていない部分に移る選択をしたという想定です。ただし、常に特定の位置から開始するようにリンクを設定することもできます。そのような場合、弊社のCDNは特定の位置から開始される切り取られたビデオコンテンツを必ず生成します。

Flashビデオ(FLV) の開始位置を設定する

ec_seekパラメーターを希望する位置に設定して、Flashビデオ(FLV) が開始される位置をプログラム的に定義することができます。

注:H.264コーデックを使ってエンコード済みのビデオのセットアップ情報を以下に示します。

ビデオが開始される正確な位置を計算するためには、以下の式を使用する必要があります。

ec_seek = StartPosition * ScrubberBar

ScrubberBar = File_Size/(Duration/Key_Frame_Interval)

上記の式で用いられるそれぞれの用語の説明を以下に示します。

用語 説明
StartPosition この用語は、ビデオが開始されるビデオ内の位置を表します。この位置は、ビデオコンテンツ開始からの秒数で指定する必要があります。
ScrubberBar この用語は、スクラブバーの1秒に相当するバイト数合計を表します。スクラブバーは進行状況を表し、ビデオ内をシークすることができます。この値は、以下の式から計算することができます。File_Size/(Duration/Key_Frame_Interval)
File_Size この用語は、対象となるビデオのファイルサイズ合計を表します。ファイルサイズはバイト単位で指定する必要があります。
期間 この用語は、ビデオの合計長さを秒単位で表します。
Key_Frame_Interval

この用語は、目的のビデオに対してキーフレームが実行されている間隔を表します。この用語は、キーフレーム間の秒数で指定する必要があります。

サンプル計算

例えば、ファイルサイズが20MB、長さが80秒でキーフレーム間隔が2秒のビデオを30秒の時点から開始する場合は、以下の計算を行います。

ScrubberBar = 20971520/(80/2) = 524288

ec_seek = 30 x 524288 = 15728640

上記の計算は、クライアントのビデオをその特定のビデオコンテンツの30秒の時点から開始するためには、ec_seekを15728640バイトに設定する必要があることを示しています (ec_seek=15728640など)。

H.264でエンコード済みのビデオの開始位置を設定する

ec_seekパラメーターを設定して、H.264でエンコード済みのビデオ (MP4、MOVおよびF4V) が開始される位置をプログラム的に定義することができます。このパラメーターは、ビデオ開始から経過した秒数に設定する必要があります。

注:FLVコーデックを使ったエンコード済みのビデオのセットアップ情報は上記のとおりです。

ビデオが開始される正確な位置を計算するためには、以下の式を使用する必要があります。

ec_seek =Seconds