ライブストリーミング業界の急速な発展に伴い、レイテンシの要件はますます厳しくなっています。 ApsaraVideo Liveは、リアルタイムストリーミング (RTS) 機能を提供し、ライブストリーミングの待ち時間を3〜6秒からミリ秒に短縮し、ユーザーエクスペリエンスを向上させます。 RTSはまた、パケット損失に対してより強い耐性を提供する。 これは、eコマースライブストリーミング、オンライン教育、ライブスポーツ、ライブショーなど、超低レイテンシとリアルタイムのインタラクションを必要とするシナリオに適しています。 このトピックでは、RTSを実装する方法について説明します。
前提条件
取り込みドメインとストリーミングドメインが利用可能です。 ドメイン名のインターネットコンテンツプロバイダー (ICP) の申請が完了しました。
説明ライブセンターが中国本土の外にあり、アクセラレーションリージョンがoutside Chinese mainlandに設定されている場合、ICPファイリングは必要ありません。
取り込みドメインとストリーミングドメインが同じトップレベルドメイン名の第2レベルドメイン名である場合、トップレベルドメイン名に対してのみICPファイリングを申請する必要があります。
手順
ApsaraVideo Liveの有効化
ApsaraVideo Liveを有効化する方法については、チュートリアルビデオをご覧ください。
Alibaba Cloud公式Webサイトにログイン
上部のナビゲーションバーで、
を選択します。 ApsaraVideo Liveホームページが表示されます。今すぐ有効化をクリックします。
ApsaraVideo Liveアクティベーションページで、メーターで計る方法としてトラフィック課金を選択します。 ApsaraVideo Live利用規約を読み、同意します。
今すぐ有効化をクリックします。
取り込みドメインとストリーミングドメインの追加
RTSを使用するには、取り込みドメインとストリーミングドメインを追加する必要があります。
ドメイン名の追加方法については、チュートリアルビデオをご覧ください。
ドメイン名を準備します。
ドメイン名がない場合は、Alibaba Cloudドメイン名で登録できます。 詳細については、「ジェネリックドメイン名の登録」をご参照ください。
中国本土でサービスを提供する場合は、ドメイン名のインターネットコンテンツプロバイダ (ICP) 番号を申請する必要があります。 詳細については、「ICP登録プロセス」をご参照ください。
説明ApsaraVideo Liveの基本機能を試したい場合は、中国本土外のリージョンでライブセンターを選択し、アクセラレーションリージョンを中国本土以外に設定することを推奨します。 これにより、ICPファイリングの必要がなくなります。
インジェストドメインとストリーミングドメインがプライマリドメインのサブドメインである場合、ICP充填はプライマリドメインに対してのみ必要です。
ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[ドメイン名] をクリックします。 ドメイン管理 ページが表示されます。
ドメインの追加をクリックします。
[ドメイン名の追加] ステップで、ビジネス要件に基づいてパラメーターを設定します。
重要ApsaraVideo Liveに初めてドメイン名を追加すると、ApsaraVideo Liveはドメイン名の所有権を検証します。 詳細については、「ドメイン名の所有権の確認」をご参照ください。
次のステップで使用するために、生成されたCNAMEを書き留めます。
CNAMEレコードの追加
RTSを使用する前に、DNSプロバイダーでCNAMEレコードを追加して、取り込みドメインとストリーミングドメインをApsaraVideo Liveによって割り当てられたCNAMEにマッピングする必要があります。 次の例は、DNSプロバイダーがAlibaba Cloudの場合にCNAMEレコードを追加する方法を示しています。 他のDNSプロバイダーでCNAMEレコードを追加する方法については、「CNAMEレコードの追加」をご参照ください。
Alibaba Cloud CDNがドメイン名のCNAMEを解決するために使用するサーバーは、中国本土にデプロイされています。 ドメイン名の地域固有のDNS設定を構成した場合、たとえば、中国本土以外の地域 (香港 (中国) 、マカオ (中国) 、台湾 (中国) など) にドメイン名のCNAMEレコードを追加した場合、ドメイン名をCNAMEにマップすることはできません。 Alibaba Cloud CDNコンソールで、CNAMEのステータスが [設定中] になっています。 ただし、ドメイン名のCDNアクセラレーションは影響を受けません。
Alibaba Cloud CDN、Dynamic Content Delivery Network (DCDN) 、ApsaraVideo Live、およびApsaraVideo VODによって割り当てられたCNAMEは、ドメイン名解決にのみ使用できます。 CNAMEが不正または悪意のある活動に使用されていることをAlibaba Cloudが発見した場合、Alibaba CloudはAlibaba Cloudアカウントを閉鎖し、ドメイン名を削除する権利を留保します。
Alibaba Cloud DNS コンソールにログインします。
左側のナビゲーションウィンドウで、[ドメイン名の解決] をクリックします。 [ドメイン名の解決] ページが表示されます。
CNAMEレコードを追加するドメイン名を見つけて、[操作] 列の [DNS設定] をクリックします。
[DNSレコードの追加] をクリックし、次の表に示すパラメーターを設定します。
パラメーター
説明
レコードタイプ
ドロップダウンリストから [CNAME] を選択します。
ホスト名
ドメイン名のプレフィックスを指定します。 ドメイン名とサンプルドメイン名の通常のプレフィックスの詳細については、次の表を参照してください。
DNSリクエストソース
デフォルト値を使用します。
レコード値
取得したCNAMEを入力します。
TTL期間
デフォルト値を使用します。
プレフィックス
サンプルドメイン名
説明
demo
demo.aliyundoc.com
サブドメイン名。
@
aliyundoc.com
ルートドメイン名。
*
*.aliyundoc.com
ワイルドカードドメイン名。
[OK] をクリックします。
CNAMEレコードが有効かどうかを確認
ストリーミングドメインを取り込みドメインに関連付ける
RTSはエッジ取り込みメソッドを使用します。 ストリームを取り込み、再生するには、ストリーミングドメインを取り込みドメインに関連付ける必要があります。
ストリーミングドメインを取り込みドメインに関連付ける方法については、チュートリアルビデオをご覧ください。
左側のナビゲーションウィンドウで、[ドメイン名] をクリックします。 表示されたページで、追加したストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。 ページが表示されます。
[基本設定] ページで、基本情報タブをクリックします。
[基本情報] タブでは、CNAMEレコード、ドメイン名が作成された時刻、ドメイン名のタイプ、ライブセンター、アクセラレーションリージョン、およびクォータ制限を表示できます。
説明ApsaraVideo Liveのクォータは、中国 (北京) 、中国 (上海) 、中国 (深セン) 、およびシンガポールの各リージョンでのみ管理できます。 他のライブセンターのクォータを増やすには、チケットを起票してください。 詳細については、お問い合わせをご参照ください。
ApsaraVideo Liveのクォータを管理する方法の詳細については、「クォータ管理」をご参照ください。
アクセラレーションリージョンを変更する方法の詳細については、このトピックの「アクセラレーションリージョンの変更」をご参照ください。
アップストリーミング情報タブをクリックします。
アップストリーミング情報の追加またはアップストリーミングドメイン隣の编集アイコンをクリックして関連付けたい取り込みドメインを選択します。
(オプション) SSL証明書の設定
セキュリティ上の理由から、ネイティブブラウザーでRTSを実装する場合は、取り込みドメインとストリーミングドメインのSecure Sockets Layer (SSL) 証明書を設定する必要があります。 詳細については、「HTTPSセキュアアクセラレーションの設定」をご参照ください。
RTS SDKまたはRTSデモを使用する場合、SSL証明書は必要ありません。
RTSの有効化
2022年9月1日以降、新しく追加されたストリーミングドメインでは、RTSとHTML5の自動トランスコーディングがデフォルトで有効になります。 追加の設定は必要ありません。 2022年9月1日より前に追加されたストリーミングドメインの場合は、手動で設定を行う必要があります。
ApsaraVideo Live コンソール にログインします。
左側のナビゲーションウィンドウで、[ドメイン名] をクリックします。 [ドメイン管理] ページが表示されます。
RTSを有効にするストリーミングドメインを見つけて、アクション列のドメイン設定をクリックします。
表示されるページで、 を選択します。
RTSをオンにします。
表示されるダイアログボックスで、RTS 1.0を選択してHTML5自動トランスコードをオンにします。
ネイティブブラウザーのWebRTCは、BフレームとAACオーディオ形式をサポートしていません。 スムーズな再生を保証するために、HTML5自動トランスコーディングはアダプティブトランスコーディングを実行します。
ブラウザを使用してBフレームとAACオーディオを含むストリームを再生すると、Bフレームが削除され、オーディオ形式が変換されます。 標準のトランスコード料金が請求されます。
AACオーディオを含むがBフレームを含まないストリームをブラウザで再生する場合は、オーディオ形式が変換されます。 音声のみのトランスコード料金が請求されます。
ブラウザーを使用してストリームを再生し、トランスコードテンプレートを設定した場合、HTML5自動トランスコードとトランスコードテンプレートの両方が有効になります。 トランスコードは1回だけ課金されます。
ネイティブSDKを使用してストリームを再生する場合、SDKはBフレームとAACオーディオ形式をサポートしているため、トランスコーディングは必要ありません。
説明RTSを有効にした後、数分待ってから設定が有効かどうかを確認します。
取り込みドメインを複数のストリーミングドメインに関連付けるには、「サブストリーミングドメインをメインストリーミングドメインにバインドする」をご参照ください。
RTSと標準ストリーミングは同じストリーミングドメインを共有できます。 ただし、RTSはUDP (User Datagram Protocol) を使用し、標準ストリーミングはTCP (Transmission Control Protocol) を使用するため、RTSには別のストリーミングドメインを設定することをお勧めします。
(オプション) カスタムURL署名の設定
URL署名機能を使用して、オリジンサーバー上のリソースを不正アクセスやダウンロードから保護できます。 デフォルトでは、追加するドメイン名に対してURL署名が有効になっています。
ビジネス要件に基づいて、デフォルトのURL署名設定またはカスタムURL署名設定を使用できます。 デフォルト設定を使用するには、追加の設定は必要ありません。 カスタム設定を使用するには、プライマリキー、セカンダリキー、および有効期間パラメーターを指定します。
URL署名の設定方法については、チュートリアルビデオをご覧ください。
ApsaraVideo Liveコンソールの左側のナビゲーションウィンドウで、[ドメイン名] を選択します。 [ドメイン名管理] ページで、RTSが有効になっているストリーミングドメインを見つけ、[操作] 列の ドメイン設定 をクリックします。
を選択します。
[URL署名] タブをクリックします。 次に、[変更] をクリックします。
URL署名設定を構成します。 下表にパラメーターを示します。
パラメーター
説明
認証タイプ
ApsaraVideo Liveのストリーミングドメインは、タイプA署名のみをサポートしています。
説明URL署名が失敗した場合、HTTPステータスコード403が返されます。 この場合、署名を再計算する必要があります。
無効なMD5値
例:
X-Tengine-Error: req authによって拒否されました: invalid md5hash=de7bfdc915ced05e17380a149bd760be
無効なタイムスタンプ
例:
X-Tengine-Error: req authによる拒否: expired timestamp=1439469547
主キー
ドメイン名を追加すると、ApsaraVideo Liveはランダムなプライマリキーを生成します。 主キーを変更できます。
セカンダリキー
カスタムセカンダリキーを指定します。
リソースプランの有効期間
署名付きURLを使用して、有効期間内にのみストリーム取り込みまたはストリーミング要求を開始できます。 ストリームの取り込みとストリーミングのために永続的な接続が確立されます。 有効期間内に開始されたストリーム取り込みおよびストリーミング要求は、有効期間が終了しても削除されません。 有効期間が終了すると、新しいストリームの取り込みとストリーミング要求が開始されません。
追加するドメイン名の署名付きURLのデフォルトの有効期間は、1日または1,440分です。 署名付きURLのカスタム有効期間を指定できます。 最小値は1分です。 上限はない。
取り込みとストリーミングURLの生成
ApsaraVideo Liveコンソールで取り込みURLとストリーミングURLを生成するか、連結ルールを使用してそれらを構築できます。
方法1: コンソールでURLジェネレータを使用
テスト用に取り込みURLとストリーミングURLをすばやく生成するには、ApsaraVideo LiveコンソールでURLジェネレーターを使用します。 詳細については、「URLジェネレーター」をご参照ください。
方法2: 連結ルールの使用
取り込みURLまたはストリーミングURLを作成する前に、ストリームがトランスコードされているかどうか、およびURL署名が必要かどうかを確認します。 次に、取り込みドメイン、ストリーミングドメイン、アプリケーション名、ストリーム名、トランスコードテンプレートID (オプション) 、およびアクセストークン (オプション) を取得します。 次の表に、連結ルールの概要を示します。
タイプ | Format | 連結ルール |
取り込みURL | サポートされている形式には、RTMP、RTS、およびSRTがあります。 RTMPが推奨されます。 RTMP URLの例:
説明 RTSを使用すると、RTS経由でストリームをプルできます。 | 取り込みドメイン + アプリケーション名 + ストリーム名 + アクセストークン |
ストリーミングURL | サポートされているフォーマットには、RTMP、FLV、M3U8、およびRTSがあります。 RTSが推奨されます。 RTS URLの例:
| ストリーミングドメイン + アプリケーション名 + ストリーム名 + アクセストークン |
コード変換されたストリームURL 説明 トランスコードされたストリームURLを作成するには、トランスコードテンプレートIDを指定する必要があります。 | サポートされているフォーマットには、RTMP、FLV、M3U8、およびRTSがあります。 RTSが推奨されます。 RTS URLの例:
| ストリーミングドメイン + アプリケーション名 + ストリーム名 + トランスコードテンプレートID + アクセストークン |
関連するストリーミングドメインとインジェストドメインは、ストリーミングドメインのアプリケーション名とストリーム名がインジェストドメインのアプリケーション名と一致する場合にのみ適切に使用できます。
トランスコードされたストリームURLを生成するには、トランスコードテンプレートIDを指定する必要があります。 コンソールでトランスコードテンプレートIDを表示できます。 詳細については、「トランスコーディング管理」をご参照ください。
アクセストークン (auth_key) は、URL認証アルゴリズムに基づいて生成される暗号化された文字列です。 URL署名を有効にする場合は、アクセストークンが必要です。 MD5アルゴリズムを使用して、アクセストークンを取得できます。 詳細については、「URL署名」をご参照ください。
連結ルールを使用してURLを作成する場合は、{Transcoding template ID} または {Access token} を {} なしの実際の値に置き換えます。
RTSベースのストリーム取り込みを開始する
RTSベースのストリーム取り込みにはRTMP形式を使用することを推奨します。 次の例では、OBS Studioを使用してRTMP経由でストリームを取り込みます。 OBS Studioは、WebRTC-HTTP取り込みプロトコル (WHIP) に基づくRTSストリームの取り込みもサポートしています。 詳細については、「OBSを使用したRTSストリームの取り込み」をご参照ください。 その他のメソッドについては、「RTSのストリーム取り込み」をご参照ください。
OBS Studioをダウンロードしてインストールします。 ダウンロードリンク: OBS Studio。
OBS Studioを起動します。
メニューバーで、 を選択します。
[設定] ページで、[ストリーム] を選択し、次の情報を設定します。
パラメーター
説明
サービス
[カスタム...] を選択
サーバー
生成された署名付き取り込みURLを入力します。 例:
rtmp:// demo.aliyundoc.com/app/stream?auth_key=1543302081-0-0-9c6e7c8190c10bdfb3c0************
ストリームキー
このパラメータは空のままにします。
オプション: [設定] ページで、[出力] をクリックし、次のパラメーターを設定してBフレームを削除します。
出力モード: 高度
キーフレーム間隔 (秒、0=自動): 1
説明キーフレーム間隔を3秒以下に設定することを推奨します。 この例では1秒を使用します。
CPU使用量プリセット (より高い=より少ないCPU): veryfast
プロフィール: baseline
チューン: zerolatency
OBS Studioのホームページにアクセスしてください。 [ソース] セクションを見つけてソースを追加し、[ストリーミングの開始] をクリックします。
ストリームの取り込み中に例外が発生した場合は、トラブルシューティングツールを使用して問題のトラブルシューティングを行うことができます。 このツールでは、一般的なストリーム取り込みの問題を診断し、特定の例外を解決するための提案を提供します。 詳細については、「トラブルシューティング」をご参照ください。
RTS再生を開始
次の表に、RTS再生用のRTS SDKに統合されているプレーヤーを示します。 Alibaba Cloud RTSは、モバイルクライアントとウェブクライアントの両方にデモを提供します。
プレイヤー:
プレイヤー
関連ドキュメント
モバイルクライアント向けのApsaraVideo Player
ネイティブSDK
ApsaraVideo Player for web
RTSデモの詳細については、「RTSストリームの再生」をご参照ください。
ストリーミング中に再生例外が発生した場合は、トラブルシューティングツールを使用して問題をトラブルシューティングできます。 このツールでは、一般的なストリーム再生の問題を診断し、特定の例外を解決するための提案を提供します。 詳細については、「トラブルシューティング」をご参照ください。
標準ライブストリーミングとの互換性
デフォルトでは、WebRTCをサポートするブラウザはOpusオーディオ形式でRTSストリームを再生できるため、トランスコーディングは必要ありません。 ストリーム取り込みにOBS Studioを使用する場合、デフォルトのオーディオ形式はOpusです。
オーディオトランスコーディング
RTMP、FLV、HLSなどの標準ストリーミングのプロトコルは、AACオーディオ形式のみをサポートします。 ストリームの取り込みにRTS 1.0を使用し、標準のライブストリーミングプロトコルでRTSストリームを再生する場合は、オーディオをOpusからAAC形式にトランスコードするようにトランスコードテンプレートを設定する必要があります。 トランスコードテンプレートの設定方法については、「ライブストリームのトランスコード」をご参照ください。
例
取り込みドメインrts-push.ialicdn.com
とストリーミングドメインrts-pull.ialicdn.com
があるとします。 両方のドメインでRTS 1.0が有効になっています。 RTMP、FLV、またはHLS上でストリームをプルするには、次の操作を実行します。
オーディオをOpusからAAC形式にトランスコードするために、ストリーミングドメイン
rts-pull.ialicdn.com
のトランスコードテンプレートを設定します。 すでにトランスコードテンプレートを設定している場合、Alibaba Cloudトランスコードテンプレートはデフォルトで音声をAAC形式に変換するため、新しいトランスコードテンプレートを追加する必要はありません。RTMP、FLV、またはHLSを介して
rts-pull.ialicdn.com
に再生要求を送信し、トランスコードされたストリームを再生します。
ストリームリレー
ストリームの取り込みにRTS 2.0を使用し、RTMP、FLV、HLSなどの標準のライブストリーミングプロトコルでRTSストリームを再生する場合は、取り込みドメインに対してstream Relayを有効にできます。 この機能を有効にすると、RTMPストリームが自動的に生成され、標準のライブストリーミングプロトコルを使用する指定されたドメイン名に中継されます。 ストリームリレーを有効にする方法については、「ストリームリレーの設定」をご参照ください。
例
取り込みドメインrtc-push.ialicdn.com
とストリーミングドメインrts-pull.ialicdn.com
があるとします。 両方のドメインでRTS 2.0が有効になっています。 さらに、標準のライブストリーミングプロトコルを使用するrtmp-push.ialicdn.com
とrtmp-pull.ialicdn.com
という別の取り込みドメインとストリーミングドメインがあります。 ストリームをrtc-push.ialicdn.com
に取り込む場合は、次の操作を実行して、RTMP、FLV、またはHLSを介してストリームをプルします。
rtc-push.ialicdn.com
のストリームリレーを有効にします。 [Relayed To] フィールドにrtmp-push.ialicdn.com
を入力します。ストリームプルに
rtmp-pull.ialicdn.com
を使用します。 RTMP、FLV、またはHLSを介してrtmp-pull.ialicdn.com
に再生要求を送信し、トランスコードされたストリームを再生します。
RTSのレイテンシの確認
ストリームの取り込み中にタイムキャリブレータURLを追加して、ストリーミング時間をUTCと比較してRTSのレイテンシを確認できます。
たとえば、OBS Studioでホームページに移動し、[ソース] セクションにタイムキャリブレータのURLを追加し、[ストリーミングの開始] をクリックします。