ApsaraVideo Live は、さまざまなストリーミングプロトコルでの低遅延再生をサポートするために、ライブストリームカプセル化機能を提供します。
サポートされているコンテナフォーマット
ApsaraVideo Live は、リアルタイムメッセージングプロトコル (RTMP)、HTTP-FLV、HTTP Live Streaming (HLS) などのさまざまなストリーミングプロトコルをサポートしています。
遅延を短縮し、複数の再生デバイスとの互換性を向上させるために、ライブストリームカプセル化は、視聴者にプッシュする前に、クラウド内の元のストリームを異なるコンテナフォーマットに変換します。
次の表に、サポートされているコンテナフォーマットと、各フォーマットがサポートするストリーミングプロトコルとコーデックを示します。
コンテナフォーマット | サポートされているストリーミングプロトコル | サポートされているコーデック |
TS |
|
|
CMAF |
|
|
仕組み
ライブストリームカプセル化は、ストリームを TS または CMAF 形式のセグメントに分割し、HLS、LL-HLS、または DASH などのプロトコルを介して配信します。 システムはマニフェストファイルを生成し、セグメントの URL を順番に記録します。 クライアントがライブストリームをリクエストすると、サーバーは最新のセグメントを含む最新のマニフェストを返します。
この機能は、ライブストリームトランスコーディング (マルチビットレートトランスコーディング対応) および タイムシフト と組み合わせて、より良いストリーミングエクスペリエンスを提供できます。
シナリオ
低遅延ライブストリーミングを実装する
ApsaraVideo Live は HLS ストリーミング URL を提供します。 HLS での低遅延ビデオストリーミングを有効にするには、カプセル化機能を使用して、LL-HLS での再生用にストリームを変換します。
標準の HLS と比較して、LL-HLS はストリームをより小さな 部分セグメント (200 ミリ秒から 1 秒の期間) に分割し、プレイリストの再読み込みをブロックするため、エンドツーエンドの遅延が 3 ~ 5 秒に短縮されます。
複数のデバイスとブラウザとの互換性を強化する
デフォルトでは、ApsaraVideo Live は TS コンテナフォーマットを使用して HLS プロトコルでライブストリームを配信します。 ただし、このフォーマットは一部のデバイスやブラウザと互換性がありません。 この場合、カプセル化機能を使用してコンテンツを CMAF 形式にパッケージ化します。CMAF 形式は、H.265 などの幅広いデバイス、プラットフォーム、コーデックをサポートしています。
始める前に
グループ オブ ピクチャ (GOP) サイズ
スムーズな再生のために、取り込まれたストリームの GOP サイズが一定であることを確認してください。 トランスコードされたストリームをカプセル化する場合は、その GOP サイズも安定していることを確認してください。
カプセル化されたストリームの各セグメントの期間は、GOP サイズの倍数である必要があります。
LL-HLS プロトコル
ネットワークの状態が悪いと、スタッタリング率が上がる可能性があります。 ネットワークの状態に基づいてビットレートを自動的に調整するマルチビットレートトランスコーディングでライブストリームカプセル化を使用することをお勧めします。
スタッタリングや再生エラーを防ぐために、ライブストリームの GOP サイズを 1 秒または 2 秒に固定してください。
ApsaraVideo Player、hls.js、ExoPlayer など、LL-HLS をサポートするプレーヤーを使用してください。
メインストリーミングドメイン名は最大 100,000 人の視聴者をサポートできます。 クォータを増やすには、 チケットを送信 してください。
その他
ドメイン名にカプセル化構成を初めて追加すると、システムはコンテンツ配信アクセラレーションの関連構成を更新します。 これらの変更が有効になるまで約 3 ~ 5 分かかります。
機能の使用
カプセル化設定の構成
ApsaraVideo Live コンソールまたは API でカプセル化設定を構成します。
進行中のストリームの場合、構成はストリームを再取り込みした後にのみ有効になります。
コンソールで
- ApsaraVideo Live コンソール にログオンします。
左側のナビゲーションウィンドウで、[機能管理] > [カプセル化] をクリックします。
ストリーミングドメイン名を選択し、[追加] をクリックします。

パラメーター
説明
AppName
ドメイン名の下にあるすべてのアプリケーションのカプセル化を構成するには、アスタリスク (*) を入力します。
特定のアプリケーション用に構成するには、値はストリームのアップストリーミング URL で指定された
AppNameと同じである必要があります。
StreamName
アプリケーションの下にあるすべてのストリームのカプセル化を構成するには、アスタリスク (*) を入力します。
特定のストリーム用に構成するには、ストリーム名を入力します。
プロトコル
コンテナフォーマットと再生プロトコルを選択します。 有効値:
HLS - CMAF
LL-HLS - CMAF
LL-HLS - TS
DASH - CMAF (DASH のみサポート)
HLS & DASH - CMAF (HLS および DASH サポート)
セグメント数
マニフェストファイルあたりのセグメント数を指定します。 有効値: 3 ~ 5。
セグメントの長さ (秒)
再生プロトコルが HLS または DASH の場合は、1 ~ 10 の整数を入力します。GOP を 5 秒に設定し、セグメントの長さを固定 GOP の倍数に設定することをお勧めします。
再生プロトコルが LL-HLS の場合は、セグメントの長さを固定 GOP の倍数である 1 秒または 2 秒に設定します。 推奨 GOP は 1 秒です。
パートの長さ (ミリ秒)
再生プロトコルが LL-HLS の場合は、HLS 部分セグメントの期間を指定します。 有効値: 200 ~ 1000 ミリ秒。
セグメントの長さの 3 分の 1 よりわずかに大きい値を指定することをお勧めします。
トランスコードされたストリーム
トランスコードされたストリームをカプセル化するかどうかを指定します。
有効値: ソースストリームのみ および トランスコードされたストリームを含む。
説明ストリーミングドメインのライブセンターが中国本土以外 (シンガポール、ドイツ、日本、またはインドネシア) の場合、再生中に大きな遅延が発生する可能性があります。 構成が完了したら、結果が期待どおりであるかどうかをテストして確認してください。
[OK] をクリックします。
API で
AddLivePackageConfig 操作を呼び出して、カプセル化構成を追加します。
カプセル化されたストリームの取り込みと再生
ストリームを取り込む
スムーズな再生のために、取り込まれたストリームの GOP サイズが一定であることを確認してください。
この例では、Open Broadcaster Software (OBS) を使用してストリームを取り込みます。 次の図は、推奨されるパラメータ設定を示しています。

カプセル化されたストリームを再生する
カプセル化されたストリームのストリーミング URL を取得します。 URL 形式はストリーミングプロトコルによって異なります。
プロトコル
URL 形式
HLS
http://<DomainName>/<AppName>/<StreamName>.m3u8?aliyunols=on&auth_key=1725503*****DASH
http://<DomainName>/<AppName>/<StreamName>.mpd?aliyunols=on&auth_key=17255038******LL-HLS
http://<DomainName>/<AppName>/<StreamName>-llhls.m3u8?aliyunols=on&auth_key=1725503******説明aliyunols=onパラメーターは、カプセル化されたストリームのストリーミング URL で必須です。ライブ URL ジェネレーター を使用して、ストリーミング URL を生成できます。 構成されているコンテナフォーマットとストリーミングプロトコルに応じて、カプセル化されたストリーム用に生成される URL は異なります。
コンテナフォーマット
ストリーミングプロトコル
URL 形式
TS
LL-HLS
LL-HLS および HLS
CMAF
LL-HLS
LL-HLS および HLS
HLS
HLS
DASH
DASH
HLS & DASH
HLS & DASH
互換性のあるプレーヤーを使用してストリームを再生します。 ApsaraVideo Player をお勧めします。
次の例では、ApsaraVideo Player の Web バージョンを使用しています。

a. ビデオタイプを [ブロードキャスト] に設定します。
b. ストリーミング URL を入力します。
c. [プレビュー] タブをクリックします。
重要ApsaraVideo Player Web バージョンを使用する場合は、HTTPS 証明書を設定し、クロスドメインアクセス用に
Access-Control-Allow-Originヘッダーを設定する必要があります。 詳細については、HTTP/S 設定 および HTTP ヘッダーの構成 をご参照ください。
高度な使用方法
トランスコードされたストリームをカプセル化する
ライブストリームカプセル化をトランスコーディングと組み合わせて、トランスコードされたストリームをカプセル化できます。
手順
ソースストリームのトランスコーディングを構成します。 詳細については、ライブストリームトランスコーディング をご参照ください。
AddLivePackageConfig 操作を呼び出し、ソースストリームとトランスコードされたストリームのカプセル化を構成します。
IgnoreTranscodeをfalseに設定します。 サンプルコード:// Specifies whether to encapsulate the transcoded stream. Default value: true, which indicates not encapsulating the transcoded stream. // トランスコードされたストリームをカプセル化するかどうかを指定します。 デフォルト値: true。トランスコードされたストリームをカプセル化しないことを示します。 addLivePackageConfigRequest.setIgnoreTranscode(<false>);カプセル化およびトランスコードされたストリームのストリーミング URL を生成します。
URL 形式:
デフォルトまたはカスタムのトランスコーディングテンプレートを使用する場合は、
_トランスコーディングテンプレート IDをStreamNameに追加します。カプセル化およびトランスコードされたストリームの LL-HLS URL のサンプル:
http://<DomainName>/<AppName>/<StreamName_Transcoding template ID>-llhls.m3u8?aliyunols=on&auth_key=1725503******マルチビットレートトランスコーディングテンプレートを使用する場合は、
_トランスコーディングテンプレートグループ IDをStreamNameに追加します。
説明マルチビットレートトランスコーディングでカプセル化を使用する場合、システムはカプセル化構成のセグメント期間とコンテナフォーマット設定に従います。
たとえば、コンテナフォーマットを CMAF に、プロトコルを DASH に設定すると、トランスコードされたストリーム用に DASH URL のみが生成されます。
互換性のあるプレーヤーを使用してストリームを再生します。
カプセル化されたストリームのタイムシフト
ライブストリームカプセル化でタイムシフトを利用できます。 詳細については、タイムシフト をご参照ください。
タイムシフトでカプセル化を使用する場合、システムはカプセル化構成のセグメント期間とコンテナフォーマット設定に従います。