ネットワーク条件が悪い場合にApsaraVideo Liveのストリーム取り込み効果を改善するために、Push SDKは、リアルタイム通信 (RTC) に基づくリアルタイムストリーミング (RTS) プロトコルを介したストリーム取り込みのサポートを追加します。 このトピックでは、さまざまなネットワーク条件でストリームを取り込むためのRTMP (Real-Time Messaging Protocol) プロトコルとRTSプロトコルを比較します。 RTMPと比較して、RTSはより安定しており、劣悪なネットワーク条件でよりよく機能します。 RTS経由でストリームを取り込むことを推奨します。 プッシュSDKは、自動プロトコル劣化のメカニズムを提供します。 RTS経由でストリームを取り込むときにエラーが発生した場合、RTMPがストリーム取り込みに使用されます。
通常のネットワーク条件と劣悪なネットワーク条件でのストリーム取り込みのためのRTMPとRTSの比較
テストシナリオ
ストリーマーはプッシュSDKを使用してストリームを取り込み、視聴者はAlibaba Cloudポイントオブプレゼンス (POP) からストリームをプルします。 視聴者側の再生効果を観察するために、ストリーマ側には様々なネットワーク制限が設けられています。 制限は、ストリーマのアップストリーム帯域幅にのみ影響し、ストリーマのダウンストリーム帯域幅には影響しない。
ストリーム取り込みパラメータ
RTMPとRTSには同じストリーム取り込みパラメータが使用されます。
パラメーター | 値 |
解像度 | 720 X 1280 |
フレームレート | 毎秒20フレーム (FPS) |
ビットレート | 2 Mbit/秒 |
ネットワークの制限
制限 | 説明 |
上流のパケット損失: 20% | 上流に送信されたパケットの20% は失われる。 |
アップストリーム帯域幅: 500 Kbit/s | 1秒あたり最大500 KBのデータを送信できます。 |
アップストリームレイテンシ: 500 ms | パケットは、500ミリ秒のレイテンシでネットワークを介して送信されます。 |
ビデオ吃音率
次の図は、さまざまなネットワーク条件でのビデオの吃音率を示しています。 値が大きいほど、吃音率が高いことを示します。 図に示すように、RTSは、劣悪なネットワーク条件においてRTMPよりも低いスタッタリング率を提供します。
ビデオ品質
次の図は、さまざまなネットワーク条件でのビデオ品質を示しています。 より大きな値は、より高いビデオ品質を示します。 図に示すように、RTSは、劣悪なネットワーク条件においてRTMPよりも良好なビデオ品質を提供します。
プッシュSDKを使用してRTS経由でストリームを取り込む
前提条件
ApsaraVideo Liveが有効化されています。 インジェストドメインとストリーミングドメインが追加され、インジェストドメインはストリーミングドメインに関連付けられます。 詳細については、「ApsaraVideo Liveの使用を開始する」をご参照ください。
取り込みドメインに対してRTSベースのストリーム取り込みが有効になっています。 2022年9月1日から、追加した取り込みドメインに対してRTSベースのストリーム取り込みが自動的に有効になります。 追加の設定は必要ありません。 2022年9月1日より前に追加された取り込みドメインの場合、RTSベースのストリーム取り込みを手動で有効にする必要があります。
ApsaraVideo Live コンソールにログインします。
左側のナビゲーションペインで、[ドメイン名] をクリックします。 [ドメイン管理] ページが表示されます。
RTSベースのストリーム取り込みを有効にする取り込みドメインを見つけて、[操作] 列の [ドメイン設定] をクリックします。
表示されるページで、
を選択します。RTSベースのストリーム取り込みをオンにします。
取り込みURLが生成されます。 RTSフォーマットの取り込みURLを生成するための規則は、最初のスキームが異なることを除いて、RTMPフォーマットの取り込みURLを生成するための規則と同様である。 RTS形式の取り込みURLは
artc://
で始まる必要があります。 詳細については、「取り込みURLとストリーミングURLの生成」をご参照ください。
RTS経由でストリームを取り込む
プッシュSDKを使用してRTSストリームを取り込む手順は、プッシュSDKを使用してRTMPストリームを取り込む手順と同様です。 RTSストリームを取り込むには、startPushメソッドを呼び出すときに、RTS形式で取り込みURLを指定する必要があります。 その他の設定は同じです。 詳細については、「Android用プッシュSDKの使用」または「iOS用プッシュSDKの使用」をご参照ください。
RTSを介したストリーム取り込みでは、オーディオストリームとビデオストリームのみがサポートされます。 言い換えれば、RTSストリームは、オーディオデータとビデオデータの両方を含まなければならない。 オーディオのみまたはビデオのみのストリームを取り込む場合は、RTS経由でストリームを取り込む前に、オーディオのみのストリームにビデオデータを追加するか、ビデオのみのストリームにオーディオデータを追加する必要があります。
ストリームを再生する
RTMP、Flash Video (FLV) 、またはHTTP Live Streaming (HLS) プロトコルを使用して、RTS経由で取り込まれたストリームを再生できます。 Alibaba Real-Time Communication (ARTC) プロトコルを使用して、超低レイテンシで再生することもできます。 RTS再生の詳細については、「RTSを使い始める」トピックの「RTSベースのストリーム取り込みの開始」セクションをご参照ください。