ライブストリーミングでのM3U8
ライブストリーミングアーキテクチャ
ライブストリーミングのシナリオでは、M3U8/HLSのワークフローは次のように機能します:エンコーダーがリアルタイム動画ストリームをエンコードしてストリーミングサーバーにプッシュし、サーバーがストリームを小さなTSフラグメントにセグメント化し、継続的に更新されるM3U8プレイリストを生成します。プレーヤーはM3U8ファイルをポーリングして、再生に必要な最新のフラグメントアドレスを取得します。
典型的なライブストリーミングシステムには、キャプチャデバイス(カメラ、画面録画など)、エンコーダー(ハードウェアエンコーダーやOBSなどのソフトウェア)、ストリーミングサーバー(Nginx-RTMP、SRSなど)、CDN配信ネットワーク、プレーヤーが含まれます。エンコーダーは通常RTMPプロトコルを使用してサーバーにストリームをプッシュし、サーバーがHLSフォーマットに変換してプレーヤーに提供します。
ライブ遅延分析
HLSライブストリーミングの遅延は通常10〜30秒の範囲で、以下の要因によって決まります:
- セグメント長:TSセグメントは通常2〜10秒で、セグメントが長いほど遅延は大きくなりますが、再生はより安定します。
- プレーヤーバッファリング:プレーヤーは通常、再生を開始する前に2〜3セグメントをバッファリングします。
- ポーリング間隔:プレーヤーが新しいセグメントを要求する頻度が遅延に影響します。
- エンコーディング遅延:動画のエンコードとパッケージングにより追加の遅延が生じます。
低遅延HLS
Appleは低遅延HLS(LL-HLS)サポートを追加し、以下のメカニズムにより遅延を2〜5秒に低減しました:
- パーシャルセグメント:TSセグメントをさらに小さな部分に分割し、早期再生を可能にします。
- プレロードヒント:サーバーがプレーヤーに次のセグメントのURLを通知し、事前リクエストを可能にします。
- ブロッキングプレイリストリロード:サーバーは新しいコンテンツが利用可能になるまでレスポンスをブロックできます。
適用シナリオ
M3U8/HLSによるライブストリーミングは、以下のシナリオで広く活用されています:オンライン教育ライブ、大規模な同時視聴をサポート;ECライブ、リアルタイム商品デモとインタラクションを実現;スポーツイベント中継、マルチカメラ切り替えとインスタントリプレイを提供;ゲーム配信、高フレームレート・低遅延の映像伝送をサポート;企業向け配信、製品発表会や社内研修に活用。