このトピックでは、リアルタイムストリーミング (RTS) を使用してライブ配信の遅延を 400 ms 未満に短縮し、視聴者にスムーズでリアルタイムな視聴体験を提供する方法について説明します。
概要
このライブ配信ソリューションは、Alibaba Cloud の Global Realtime Transport Network (GRTN) 上に構築されています。WebRTC プロトコルを使用して、200~400 ms のエンドツーエンドレイテンシを実現します。また、このソリューションは標準のライブ配信とシームレスに統合され、上位互換性を確保しています。
RTS を使用して 200~400 ms のエンドツーエンドレイテンシを実現:
-
ストリーマーはライブコンテンツをキャプチャし、プッシュ SDK を使用して WebRTC プロトコル経由で最寄りの Alibaba Cloud エッジノード (POP) にストリームをアップロードします。
-
ストリームは、インテリジェントルーティングとサービス品質 (QoS) 技術を使用して、GRTN 内の 3,200 以上のノード間でリアルタイムに伝送されます。
-
視聴者は、WebRTC プロトコル経由で最寄りの Alibaba Cloud エッジノード (POP) からストリームをプルして再生し、200~400 ms のエンドツーエンドレイテンシを実現します。
(オプション) ストリームリレーを有効にして、メディア処理、RTS、および標準のライブ配信をサポート:
-
ストリームリレーを有効にすると、ApsaraVideo Live は取り込まれたストリームを自動的にトランスマックスして RTMP ストリームを生成します。
-
このストリームに対して、トランスコード、録画、スナップショットキャプチャなどのメディアサービスを設定できます。
-
低遅延のストリームプルを維持したい場合は、RTS を使用できます。視聴者は引き続き WebRTC 経由でストリームをプルして、400~800 ms のエンドツーエンドレイテンシを得ることができます。
-
標準のライブ配信を使用したい場合は、RTMP、FLV、HLS などのプロトコルを使用してストリームをプルして再生できます。
実装
前提条件
-
ApsaraVideo Live サービスを有効化済みであること。詳細については、「ApsaraVideo Live の有効化」をご参照ください。
-
アップストリーミングドメインとストリーミングドメインが設定されています。 詳細については、ApsaraVideo Live の使用開始 の「アップストリーミングドメインとストリーミングドメインの追加」、「CNAME レコードの設定」、および「アップストリーミングドメインとストリーミングドメインの関連付け」の各セクションをご参照ください。
ドメインの HTTPS 証明書の設定
このトピックでは、ブラウザベースのデモを使用してストリームのアップストリームとプルを行います。ブラウザの WebRTC はセキュリティのために HTTPS を必要とします。したがって、アップストリーミングドメインとストリーミングドメインに HTTPS 証明書を設定する必要があります。手順については、「HTTPS セキュアアクセラレーションの設定」をご参照ください。
ストリームのアップストリームと再生にネイティブ SDK を使用する場合、HTTPS 証明書を設定する必要はありません。
リアルタイムストリーミング (RTS) の有効化
-
ApsaraVideo Live コンソールにログインします。
-
左側のナビゲーションウィンドウで、ライブストリーム +> RTS をクリックします。
-
ストリーミングドメインを選択します。
-
RTS スイッチをオンにし、[半秒の遅延 (エンドツーエンドレイテンシ 200~400 ms)] を選択します。
[半秒の遅延] を選択すると、ARTC プロトコル経由のストリームのアップストリームと再生のみがサポートされます。標準のライブ配信、RTMP 経由のストリームのアップストリーム、およびトランスコードや録画などのクラウド機能は、現在のストリーミングドメインでは無効になります。
アップストリーミング URL と再生 URL の生成
方法1:コンソールで URL を生成
RTS を有効にした後、ストリーミングテストツールに移動し、ライブストリーミング URL の高速生成 をクリックします。AppName と StreamName を入力して、ARTC ベースの RTS アップストリーミング URL と再生 URL を生成します。
設定ページで、ストリーミングドメインとそれに関連付けられたアップストリーミングドメインを選択します。[遅延目標] セクションで、[サブ秒の遅延] (エンドツーエンドレイテンシ:400~800 ms) または [半秒の遅延] (エンドツーエンドレイテンシ:200~400 ms) を選択します。HTTPS 再生が必要な場合は、SSL 証明書と Access-Control-Allow-Origin レスポンスヘッダーを設定していることを確認してください。生成されたアップストリーミング URL と再生 URL はどちらも artc:// で始まります。
方法2:手動で URL を組み立てる
URL を手動で組み立てるには、アップストリーミングドメイン、ストリーミングドメイン、AppName、StreamName、トランスコーディングテンプレート ID (該当する場合)、および認証文字列 (該当する場合) を収集します。
|
URL タイプ |
URL フォーマット |
組み立てルール |
|
インジェスト URL |
RTMP、RTS、SRT をサポートしています。アップストリームには RTMP の使用を推奨します。例: RTMP: 説明
RTS は RTS 形式の URL を使用したストリームのプルをサポートしています。 |
アップストリーミングドメイン + AppName + StreamName + 認証文字列 |
|
ストリーミング URL |
RTMP、FLV、M3U8、RTS をサポートしています。再生には RTS の使用を推奨します。例: RTS: |
ストリーミングドメイン + AppName + StreamName + 認証文字列 |
|
トランスコード済みストリーム URL 説明
トランスコーディングテンプレートを使用する場合、このフォーマットでストリーミング URL を組み立てる必要があります。 |
RTMP、FLV、M3U8、RTS をサポートしています。再生には RTS の使用を推奨します。例: RTS: |
ストリーミングドメイン + AppName + StreamName_トランスコーディングテンプレート ID + 認証文字列 |
-
関連付けられたアップストリーミングドメインとストリーミングドメインでは、両方の AppName と StreamName が同じであれば、ストリームのアップストリームと再生が可能です。
-
トランスコード済みストリーム URL にはトランスコーディングテンプレートが必要です。テンプレート ID はコンソールで確認してください。詳細については、「ライブストリームのトランスコーディング」をご参照ください。
-
認証文字列 (auth_key) は MD5 認証アルゴリズムによって生成されます。URL 認証を有効にする必要があります。詳細については、「認証済み URL のコンポーネント」をご参照ください。
-
{transcoding_template_ID} または {authentication_string} を実際のデータに置き換え、最終的な URL から中括弧 {} を省略してください。
RTS ストリームの取り込み
以下のいずれかのプッシュ SDK を統合します:
|
RTS プッシュ SDK |
リファレンス |
|
Push SDK for iOS |
説明
Push SDK for iOS は、デフォルトで WebRTC ベースのストリームのアップストリームをサポートしています。 |
|
Push SDK for Android |
説明
Push SDK for Android は、デフォルトで WebRTC ベースのストリームのアップストリームをサポートしています。 |
|
WHIP プロトコル経由で OBS を使用したストリームのアップストリーム |
以下の手順は、Web デモを使用して RTS ストリームをアップストリームする方法を説明しています:
-
RTS Web デモ (ストリームアップストリーム用) にアクセスします。
-
デモで、[ストリームの取り込み] モードを選択します。
-
[none] ドロップダウンリストから、必要に応じて [camera] または [screen] を選択します。
[camera] を選択した場合は、[マイク] と [カメラ] ボタンをクリックして、必要なブラウザの権限を付与します。権限を付与した後、マイクとカメラのドロップダウンリストからデバイスを選択します。
-
「アップストリーミング URL と再生 URL の生成」ステップで生成した RTS アップストリーミング URL を入力し、[ローカルストリームの作成] をクリックします。
-
[開始] をクリックして、ストリームのアップストリームを開始します。
RTS ストリームの再生
以下のいずれかの ApsaraVideo Player SDK を統合します:
|
RTS Player SDK |
リファレンス |
|
ApsaraVideo Player SDK for Web |
|
|
ApsaraVideo Player SDK for iOS |
|
|
ApsaraVideo Player SDK for Android |
|
|
ApsaraVideo Player SDK for Flutter |
|
|
ApsaraVideo Player SDK for Windows |
説明
ApsaraVideo Player SDK for Windows を入手するには、営業チームにお問い合わせください。 |
以下の手順は、Web デモを使用して RTS 再生を行う方法を説明しています:
-
RTS Web デモ (再生用) にアクセスします。
-
デモで、[ストリームのプル] モードを選択します。
-
「アップストリーミング URL と再生 URL の生成」ステップで生成した RTS 再生 URL を入力します。
-
[開始] をクリックします。
(オプション) ストリームリレーの設定
-
RTS 設定ページで、[半秒の遅延 (エンドツーエンドレイテンシ 200~400 ms)] を選択します。
-
[ストリームリレーの設定] をクリックし、スイッチをオンにして、リレーされた RTMP ストリームを受信する別のアップストリーミングドメインを選択します。
例えば、送信先のアップストリーミングドメインが push.example.com で、それに関連付けられたストリーミングドメインが pull.example.com であるとします。
-
RTS の半秒遅延モードは、送信先のアップストリーミングドメインまたはそれに関連付けられたストリーミングドメインでは有効にできません。
-
内部ストリームリレーには料金はかかりません。
(オプション) リレーされたストリームのメディアサービスの設定
ストリームリレーを設定した後、送信先のアップストリーミングドメインに関連付けられたストリーミングドメイン (pull.example.com) のメディア処理テンプレートを設定できます。
ApsaraVideo Live コンソールの左側のナビゲーションウィンドウで、機能管理 をクリックし、設定したい機能を選択します。
[機能管理] セクションには、[ライブ録画]、[ライブトランスコーディング]、[ライブウォーターマーク]、[ライブスナップショット]、[タイムシフト再生]、[Content Moderation]、[ライブパッケージング]、[リアルタイム字幕] (パブリックプレビュー)、[エッジトランスコーディング]、[DRM 管理]、[コールバック管理]、[ストリームのプルとリレー] などの機能の設定項目が含まれています。
(オプション) 標準プロトコルでのリレーされたストリームの再生
ストリームがリレーされた後、送信先のアップストリーミングドメインに関連付けられたストリーミングドメイン (pull.example.com) を使用して、標準のライブ配信 (RTMP、FLV、または HLS) でオリジナルまたはトランスコード済みのストリームを再生できます。詳細については、「標準のライブストリームの再生」をご参照ください。