このトピックでは、コストリーミングシナリオでのストリーマとコストリーマの取り込みURLとストリーミングURL、戦闘シナリオでのさまざまなストリーマの取り込みURLとストリーミングURL、および視聴者のCDNストリーミングURLの連結ルールについて説明します。
前提条件
ApsaraVideo Real-time Communication (ARTC) アプリケーションが作成されます。 詳細については、「ARTCアプリケーションの作成」をご参照ください。
ストリーミングドメインが追加され、ストリーミングドメインは取り込みドメインに関連付けられます。 ストリーミングドメインを追加する方法の詳細については、「高速化ドメイン名の追加」をご参照ください。 ストリーミングドメインを取り込みドメインに関連付ける方法の詳細については、「ストリーミングドメインを取り込みドメインに関連付ける」をご参照ください。
コストリーミングまたは戦闘中、同じ部屋または異なる部屋のストリーマーおよびコストリーマーのIDを含むユーザーIDは同じではありません。 さもなければ、衝突が起こるかもしれない。 たとえば、ルームAのストリーマー (ルームID: A、ストリーマーID: 111、および共同ストリーマーID: 222) は、ルームBのストリーマー (ルームID: B、ストリーマーID: 222、および共同ストリーマーID: 333) と共起または戦闘を開始できません。なぜなら、部屋AのコストリーマのIDは部屋BのストリーマのIDと同じだからです。
コストリーミングシナリオでのストリーマとコストリーマのURLの取り込みとストリーミング
コストリーミングシナリオでストリーマーとコストリーマーの取り込みURLとストリーミングURLを作成する前に、次の表に示すフィールドを取得します。
項目 | 説明 |
artc:// | URLのプレフィックス。 このフィールドは変更しないでください。 |
live.aliyun.com | URLの固定フィールド。 このフィールドは変更しないでください。 説明 live.aliyun.comは実際のドメイン名ではありません。 ping、traceroute、telentなどのドメイン関連の操作は実行しないでください。 |
プッシュ | ストリームの取り込みを識別する固定フィールド。 このフィールドは変更しないでください。 |
プレイ | ストリームのプルを識別する固定フィールド。 このフィールドは変更しないでください。 |
roomId | カスタムルームID。 ストリーマーと共同ストリーマーは同じルームIDを使用する必要があります。 IDの長さは最大64文字で、数字、文字、ハイフン (-) 、アンダースコア (_) 、および等号 (=) を使用できます。 |
sdkAppId | ARTCアプリケーションのID。 IDは、ApsaraVideo LiveコンソールでARTCアプリケーションを作成すると自動的に生成されます。 詳細については、「ストリームミキシングの設定」をご参照ください。 |
userId | ユーザー ID。 ストリーマーについては、ストリーマーのIDである。 コストリーマの場合、それはコストリーマのIDである。 部屋のストリーマーと共同ストリーマーのIDが同じでないことを確認してください。 IDの長さは最大64文字で、数字、文字、ハイフン (-) 、アンダースコア (_) 、および等号 (=) を使用できます。 |
timestamp | URLが期限切れになるまでのタイムスタンプ (秒単位) 。 タイムスタンプは、コストリーミングが開始されてから24時間を超えることはできません。 |
token | roomId、timestamp、userId、sdkAppId、およびAppKeyに基づいて生成されるトークン。 詳細については、「トークンベースの認証」をご参照ください。 |
仮定:
roomIdの値は
123
です。sdkAppIdの値は、
d14baa88-****-4111-b5b0-3b2f60d2ef8 0
です。ストリーマIDは
518
です。コストリーマIDは
520
です。timestampの値は
1659583716
です。トークンの値は
2035650c0f7 **** a53998
です。
次の表に、連結ルールを使用して構築されるURLの例を示します。
${} の内容を実際の値に置き換えます。
URLタイプ | 連結ルール | 例 | |
ストリーマ | 取り込みURL | artc://live.aliyun.com/push/${Room ID}?sdkAppId=${ARTC application ID}&userId=${Streamer ID}×tamp=${Expiration timestamp}&token=${Token} | RTCによるストリーム取り込みがサポートされています。 RTCに基づく取り込みURL: |
ストリーミングURL | artc://live.aliyun.com/play/${Room ID}?sdkAppId=${ARTC application ID}&userId=${Streamer ID}×tamp=${Expiration timestamp}&token=${Token} | RTC上のストリームプルがサポートされています。 RTCに基づくストリーミングURL: | |
コーストリーマ | 取り込みURL | artc://live.aliyun.com/push/${Room ID}?sdkAppId=${ARTC application ID}&userId=${Co-streamer ID}×tamp=${Expiration timestamp}&token=${Token} | RTCによるストリーム取り込みがサポートされています。 RTCに基づく取り込みURL: |
ストリーミングURL | artc://live.aliyun.com/play/${Room ID}?sdkAppId=${ARTC application ID}&userId=${Co-streamer ID}×tamp=${Expiration timestamp}&token=${Token} | RTC上のストリームプルがサポートされています。 RTCに基づくストリーミングURL: |
戦闘シナリオでのさまざまなストリーマーのURLの取り込みとストリーミング
バトルでStreamer AとStreamer Bの取り込みURLとストリーミングURLを作成する前に、次の表に示すフィールドを取得します。
項目 | 説明 |
artc:// | URLのプレフィックス。 このフィールドは変更しないでください。 |
live.aliyun.com | URLの固定フィールド。 このフィールドは変更しないでください。 |
プッシュ | ストリームの取り込みを識別する固定フィールド。 このフィールドは変更しないでください。 |
プレイ | ストリームのプルを識別する固定フィールド。 このフィールドは変更しないでください。 |
roomId | カスタムルームID。 バトルに参加するストリーマーは、異なるルームIDを使用する必要があります。 IDの長さは最大64文字で、数字、文字、ハイフン (-) 、アンダースコア (_) 、および等号 (=) を使用できます。 |
sdkAppId | ARTCアプリケーションのID。 IDは、ApsaraVideo LiveコンソールでARTCアプリケーションを作成すると自動的に生成されます。 詳細については、「ストリームミキシングの設定」をご参照ください。 |
userId | カスタムストリーマID。 バトルに参加するストリーマーは、異なるストリーマーIDを使用する必要があります。 IDの長さは最大64文字で、数字、文字、ハイフン (-) 、アンダースコア (_) 、および等号 (=) を使用できます。 |
timestamp | URLが期限切れになるまでのタイムスタンプ (秒単位) 。 タイムスタンプは、バトル開始から24時間を超えることはできません。 |
token | roomId、timestamp、userId、sdkAppId、およびAppKeyに基づいて生成されるトークン。 詳細については、「トークンベースの認証」をご参照ください。 |
仮定:
ストリーマAの部屋IDは
111
である。ストリーマBの部屋IDは
222
です。sdkAppIdの値は、
d14baa88-****-4111-b5b0-3b2f60d2ef8 0
です。ストリーマAのIDは
125
である。ストリーマBのIDは
396
である。timestampの値は
1659583716
です。トークンの値は
2035650c0f7 **** a53998
です。
次の表に、連結ルールを使用して構築されるURLの例を示します。
${} の内容を実際の値に置き換えます。
URLタイプ | 連結ルール | 例 | |
ストリーマーA | 取り込みURL | artc://live.aliyun.com/push/${Room ID of Streamer A}?sdkAppId=${ARTC application ID}&userId=${ID of Streamer A}×tamp=${Expiration timestamp}&token=${Token} | RTCによるストリーム取り込みがサポートされています。 RTCに基づく取り込みURL: |
ストリーミングURL | artc://live.aliyun.com/play/${Room ID of Streamer A}?sdkAppId=${ARTC application ID}&userId=${ID of Streamer A}×tamp=${Expiration timestamp}&token=${Token} | RTC上のストリームプルがサポートされています。 RTCに基づくストリーミングURL: | |
ストリーマB | 取り込みURL | artc://live.aliyun.com/push/${Room ID of Streamer B}?sdkAppId=${ARTC application ID}&userId=${ID of Streamer B}×tamp=${Expiration timestamp}&token=${Token} | RTCによるストリーム取り込みがサポートされています。 RTCに基づく取り込みURL: |
ストリーミングURL | artc://live.aliyun.com/play/${Room ID of Streamer B}?sdkAppId=${ARTC application ID}&userId=${ID of Streamer B}×tamp=${Expiration timestamp}&token=${Token} | RTC上のストリームプルがサポートされています。 RTCに基づくストリーミングURL: |
視聴者のCDNストリーミングURL
視聴者のCDNストリーミングURLは、ストリーマーが存在する部屋のCDNストリーミングURLです。 異なる部屋には異なるCDNストリーミングURLがあります。 視聴者のCDNストリーミングURLを作成するときは、視聴者のルームIDと同じルームのストリーマーIDを使用します。
戦闘シナリオでは、ストリーマーの異なる部屋の視聴者は、再生のために対応する部屋のCDNストリーミングURLを使用する必要があります。 ストリーマーAが別のストリーマーとのバトルを開始すると、ビューアCはストリーマーAの部屋のCDNストリーミングURLを使用してバトルを視聴します。
ビューアのCDNストリーミングURLを作成する前に、次の表に示すフィールドを取得します。
項目 | 説明 |
プロトコルプレフィックス | Real-Time Messaging Protocol (RTMP) 、Flash Video (FLV) 、M3U8、およびReal-Time Streaming (RTS) 形式のURLがサポートされています。 対応するプロトコルプレフィックスは、 |
ストリーミングドメイン | ストリーミングドメイン。 ApsaraVideo LiveコンソールでARTCアプリケーションのストリーミングドメインを設定する方法については、「ストリームミキシングの設定」をご参照ください。 |
AppName | コストリーミングに使用されるアプリケーションのカスタム名。 名前は最大255文字で、数字、文字、ハイフン (-) 、アンダースコア (_) 、および等号 (=) を使用できます。 |
StreamId | 取り込みURLの複数のフィールドに基づいてStreamIdを作成します。 連結ルール:
|
auth_key 説明 このフィールドは、URL署名が有効な場合にのみ必要です。 | アクセストークンは、URL署名アルゴリズムに基づいて生成される暗号化された文字列です。 アクセストークンを生成する前に、URL署名を有効にする必要があります。 ApsaraVideo LiveコンソールでURL署名機能を有効にし、アクセストークンを取得できます。 詳細については、「URL署名の設定」をご参照ください。 MD5アルゴリズムを使用してアクセストークンを生成することもできます。 詳細については、「署名付きURLの作成」をご参照ください。 |
StreamIdフィールドの最後の部分は、入力ストリームのタイプを指定します。
カメラ: カメラによってキャプチャされたビデオストリーム。
shareScreen: 画面共有のビデオストリーム。
audio: マイクによってキャプチャされたオーディオストリーム。
ARTCアプリケーションIDがd14baa88-****-4111-b5b0-3b2f60d2ef8 0
の場合、ルームIDは123
で、ストリーマーIDは518
です。
ビデオストリームの場合、StreamIdの値は
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera
です。オーディオのみのストリームの場合、StreamIdの値は
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio
です。
ストリーミングドメインがexample.alivecdn.com
で、auth_keyの値が16632272 **** fd016c6d85f
の場合:
ビデオストリームの場合、StreamIdの値は
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_camera
です。オーディオのみのストリームの場合、StreamIdの値は
d14baa88-****-4111-b5b0-3b2f60d2ef80_123_518_audio
です。
次の表に、連結ルールを使用して構築されるURLの例を示します。
再生にはHTTP-FLV形式のURLを使用することを推奨します。
RTMPフォーマットのURLとHTTP-FLVフォーマットのURLは、同じデータコンテンツを含むが、異なるチャネルを使用する。 HTTPは、インターネットを介して情報を送信するための主要なプロトコルである。 Alibaba Cloud CDN、インターネットサービスプロバイダー (ISP) 、仲介デバイス間の接続など、HTTPプロトコルを介した接続は高度に最適化されています。 HTTPプロトコルのデフォルトポートは80で、HTTPSプロトコルのデフォルトポートは443です。 ほとんどの場合、ポートはホワイトリストに追加され、無効にすることはできません。 RTMPは古いプロトコルであり、デフォルトポートとして1935を使用します。 ポート1935は、ファイアウォールによって無効にすることができる。 これにより、エラーが発生する可能性があります。 RTMPと比較して、HTTP-FLVはより安定しており、より良いパフォーマンスを提供します。 例えば、HTTP-FLV上のビデオ再生は、RTMPよりも低いスタッターレート及び低いレイテンシを有します。
${} の内容を実際の値に置き換えます。
URLタイプ | 連結ルール | 例 | |
CDNストリーミングURL | ストリーミングURL |
| ストリーミングURLは、RTMP、FLV、M3U8、およびRTS形式をサポートします。
|