ライブ配信の遅延の削減
概要
遅延(レイテンシー)とは、現実世界で録画された映像が動画プレーヤーで表示されるまでの時間差のことを指します。信号をソースからインターネット経由で視聴者のプレーヤーに送信するには、当然ながらある程度の時間がかかります。さらに、オンライン動画は「セグメント」と呼ばれる離散的なチャンクに分割されて送信されるため、遅延が増加する要因となります。
遅延を削減するには、動画セグメントの長さを短縮することが有効です。本ドキュメントでは、その具体的な方法について説明します。
ただし、遅延を短縮することでいくつかのデメリットが生じる可能性があるため、以下の点に注意が必要です。動画のスムーズな再生を確保するために、プレーヤーは現在の再生位置より先のいくつかの動画セグメントを事前にダウンロード(バッファリング)しています。
セグメントの長さを短縮する際には、次の点を考慮してください。
- プレーヤーが事前に取得する動画データが減るため、バッファリング中に再生が一時停止するリスクが高まる可能性があります。
- CDN(コンテンツ デリバリー ネットワーク)のリクエスト トラフィックが増加します。
- Apple は標準のライブストリーミング HLS において、6秒のセグメント長を推奨しています。セグメントを短縮すると、環境が最適でない場合にストリームの安定性が低下する可能性があります。遅延を最小限に抑える必要がある場合は、低遅延ライブ の使用を検討してください。
低遅延ライブ プロファイルの作成
遅延を減らすためには、カスタムのライブ プロファイルを作成する必要があります。以下の手順に従ってください:
- Studio にログインします。
- 管理モジュールを開きます。
- 左側のナビゲーションから トランスコードプロファイル をクリックします。
- Live トランスコードプロファイルの中から、最大 4 つのレンディションを含むものを選択します。
- プロファイルのリンクをクリックして開きます。
- をクリックして、選択したプロファイルを基に新しいプロファイルを作成します。
- 新しいプロファイルで、
name
を「低遅延プロファイル」(または意味のある名前)に変更します。 - 各
renditions
のsegment_seconds
を2
に変更し、セグメントの長さを2秒に短縮します。 - プロファイルは以下のようになります:
{ "model_version": 1, "name": "Low Latency Profile", "description": "Deliver high-quality renditions to maximize quality for desktop and OTT.", "account_id": "57838016001", "renditions": [ { "media_type": "video", "format": "ts", "segment_seconds": 2, "label": "hls1080p", "live_stream": true, "video_codec": "h264", "video_bitrate": 4000, "keyframe_interval": 60, "width": 1920, "height": 1080, "h264_profile": "high" }, { "media_type": "video", "format": "ts", "segment_seconds": 2, "label": "hls720p", "live_stream": true, "video_codec": "h264", "video_bitrate": 2400, "keyframe_interval": 60, "width": 1280, "height": 720, "h264_profile": "high" }, { "media_type": "video", "format": "ts", "segment_seconds": 2, "label": "hls540p", "live_stream": true, "video_codec": "h264", "video_bitrate": 1700, "keyframe_interval": 60, "width": 960, "height": 540, "h264_profile": "main" }, { "media_type": "video", "format": "ts", "segment_seconds": 2, "label": "hls360p", "live_stream": true, "video_codec": "h264", "video_bitrate": 900, "keyframe_interval": 60, "width": 640, "height": 360, "h264_profile": "main" } ], "packages": [] }
- このプロファイルを使用するには、Live モジュールで新しいライブイベントを作成する際に選択してください。
Live API の使用
遅延を短縮したい場合、Live API を使用してライブジョブを作成する際に、通常通りジョブを作成しますが、最大 4 つのレンディション のみを含め、各レンディションの segment_seconds
を 2
に設定してください。この機能を使用する際には、記載されている制限事項 を確認するようにしてください。
制限事項
2秒のセグメント長を使用すると、冗長性を備えたライブジョブとの互換性がありません。