サーバーでのスライディングウィンドウの設定
スライディングウィンドウは、Apple HTTP Live Streaming のストリームのシーク可能な部分です。クライアントは、スライディングウィンドウの長さを越えてシークすることはできません。HTTP Live Streaming クライアントは、スライディングウィンドウを使用してシークバーを設定します。
次のレベルでスライディングウィンドウを設定します。
レベル
|
設定ファイル
|
Server
|
rootinstall/Apache2.2/conf/httpd.conf
|
Application
|
rootinstall/applications/livepkgr/Application.xml
livepkgr アプリケーションは HTTP ストリーミング用のデフォルトアプリケーションです。このアプリケーションは、複製して名前を変更できます。
|
イベント
|
rootinstall/applications/livepkgr/events/_definst_/liveevent/Event.xml
liveevent フォルダーはデフォルトのライブイベントです。1 つのアプリケーション内に複数のライブイベントを作成できます。
|
次のパラメーターを使用します。
パラメーター
|
設定ファイル
|
説明
|
HLSSlidingWindowLength
|
httpd.conf
|
スライディングウィンドウでのシークに使用できる TS ファイルの数。
|
SlidingWindowLength
|
Application.xml と Event.xml
|
スライディングウィンドウでのシークに使用できる TS ファイルの数。
|
HLSMediaFileDuration
|
httpd.conf
|
ミリ秒単位の TS ファイルの長さ。
|
MediaFileDuration
|
Application.xml と Event.xml
|
ミリ秒単位の TS ファイルの長さ。
|
スライディングウィンドウ内の時間は次のとおりです。
HLSSlidingWindowLength * HLSMediaFileDuration
SlidingWindowLength * MediaFileDuration
デフォルトでは、HLSSlidingWindowLength は 6 秒に、HLSMediaFileDuration は 8000 ミリ秒に設定されます。そのため、デフォルトでは、48 秒幅のウィンドウ内ですべての HLS ライブイベントをシークできます。
スライディングウィンドウは、ライブストリームの現在の位置に対応します。例えば、スライディングウィンドウが 15 分のデータを保持するように設定されていて、イベントが時間 0 で開始する場合、ライブストリームが 30 のとき、最後のシーク可能位置は 15 になります。
ライブイベント全体をシーク可能にするには、SlidingWindowLength または HLSSlidingWindowLength を 0 に設定します。ただし、これによってパフォーマンスに影響が出る場合があります。
スライディングウィンドウはディスクにキャッシュされるコンテンツの継続時間より小さくなるように設定します。Event.xml ファイルでは、DiskManagementDuration エレメントはサーバーがキャッシュするコンテンツ量を指定します。デフォルトで、サーバーは 3 時間分のコンテンツをキャッシュします。HLS スライディングウィンドウのサイズは次のようにする必要があります。
HLSSlidingWindow <= (DiskManagementDuration - SegmentDuration)
ディスク管理の詳細については、ディスク管理を参照してください。
イベントレベルでのスライディングウィンドウの設定
次の Event.xml ファイルは、単一の HLS ライブイベントに対し、1 時間のスライディングウィンドウを作成します。
<Event>
<EventID>liveevent</EventID>
<Recording>
<FragmentDuration>4000</FragmentDuration>
<SegmentDuration>400000</SegmentDuration>
<DiskManagementDuration>3</DiskManagementDuration>
</Recording>
<HLS>
<MediaFileDuration>8000</MediaFileDuration>
<SlidingWindowLength>450</SlidingWindowLength>
</HLS>
</Event>
アプリケーションレベルでのスライディングウィンドウの設定
次の Application.xml ファイルは、livepkgr アプリケーション内のすべての HLS ライブイベントに対し、1 時間のスライディングウィンドウを作成します。
<Application>
<StreamManager>
<Live>
<AssumeAbsoluteTime>true</AssumeAbsoluteTime>
</Live>
</StreamManager>
<HLS>
<MediaFileDuration>8000</MediaFileDuration>
<SlidingWindowLength>450</SlidingWindowLength>
</HLS>
</Application>
livepkgr アプリケーションを再ロードします。
サーバーレベルでのスライディングウィンドウの設定
次の Apache 設定は、HLSSlidingWindowLength を 450 に設定します。この設定は、サーバー上のすべての HLS ライブイベントに対し、1 時間のスライディングウィンドウを作成します。
...
<IfModule hlshttp_module>
<Location /hls-live>
HLSHttpStreamingEnabled true
HttpStreamingLiveEventPath "../applications"
HttpStreamingContentPath "../applications"
HLSMediaFileDuration 8000
HLSSlidingWindowLength 450
HLSFmsDirPath ".."
HLSM3U8MaxAge 2
HLSTSSegmentMaxAge -1
Options -Indexes FollowSymLinks
</Location>
Apache HTTP Server を再起動します。
スライディングウィンドウによるストリームのパブリッシュ
スライディングウィンドウを使用してストリームをパブリッシュするようにエンコーダーを設定する必要はありません。
スライディングウィンドウによるストリームの再生
HTTP Live Streaming をサポートするデバイスは、デフォルトでスライディングウィンドウ機能をサポートします。