このトピックでは、リアルタイムストリーミング (RTS) に関するよくある質問に対する回答を提供します。
標準のストリーミングとRTSを使用してライブストリームを同時に視聴できますか?
はい。 標準ストリーミングURLおよびRTS URLは、各ライブストリームに対して提供されます。 たとえば、RTMP (Real-Time Messaging Protocol) ベースの標準ストリーミングのURLはrtmp://${streaming domain}/AppName/StreamName?${ Access token}
で、RTSのURLはartc://${Streaming domain}/AppName/StreamName?${ Access token}
です。
RTSを自分のSDKに統合できますか?
はい。 RTSシグナリングプロトコルの仕様に従う必要があります。 詳細については、「GRTNへのアクセスに使用されるWebRTCシグナリングの仕様」をご参照ください。
Web RTS SDKを使用してライブストリームを再生できないのはなぜですか?
Web Real-Time Communications (WebRTC) のネイティブブラウザーの制限により、Web RTS SDKを使用する場合は次の制限が適用されます。
Bフレームを含むビデオはサポートされていません。 フレームスキップは、再生中に生じ得る。
AAC形式でエンコードされたオーディオはサポートされていません。 再生中にノイズが発生することがあります。
ライブストリームにBフレームが含まれているかどうか、またはオーディオがAAC形式であるかどうかがわからない場合は、ApsaraVideo liveコンソールにログインし、ドメイン名のRTSページに移動し、[HTML5再生用の自動トランスコーディング] スイッチをオンにしてBフレームを削除し、AAC形式を変換します。
RTSをオンにすると、[RTSの有効化] ダイアログボックスにスイッチが表示されます。
HTML5再生の自動トランスコーディングをオンにすると、システムは自動的にBフレームを削除し、Opusトランスコーディングを実行します。 RTSコード変換テンプレートを設定する必要はありません。 既にRTSコード変換テンプレートを設定している場合は、[HTML5再生の自動コード変換] 機能とコード変換テンプレートの両方が有効になります。 ただし、トランスコーディングは1回だけ課金されます。
RTSを使用してもレイテンシが高いのはなぜですか?
RTSは、ミリ秒レベルのライブストリーミング遅延を提供します。 レイテンシが明らかに1秒を超える場合は、次の手順を実行して問題をトラブルシューティングします。
ステップ1: ストリーム取り込みのネットワークステータスを確認します。
ApsaraVideo Live コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。
取り込まれたストリームのAppNameとStreamNameを入力し、フレームレート、ビットレート、タイムスタンプなどの情報が正常かどうかを確認します。
ステップ2: RTS TraceIDを取得し、チケットを起票してテクニカルサポート担当者にお問い合わせください。
フレームレート、ビットレート、タイムスタンプは正常であるが、長い遅延とスタッタリングの問題が続く場合は、プレーヤーのデモを使用してストリームを再生し、TraceIDを取得します。 詳細については、「RTSデモを使用したRTS TraceIDの取得」をご参照ください。 次に、チケットを起票し、Alibaba Cloudテクニカルサポートに連絡します。 詳細については、「お問い合わせ」をご参照ください。
RTSを使用してwebでストリームを取り込むときに、HLSベースとFLVベースの再生にサウンドがない場合はどうすればよいですか?
RTSを使用してweb上でストリームを取り込む場合、オーディオにはOpusコーデックが使用されます。 したがって、Flash Video (FLV) およびHTTP Live Streaming (HLS) に基づく再生はサポートされていません。 RTMP経由でストリームを取り込み、RTS経由でストリームを再生することを推奨します。 このようにして、FLVベースおよびHLSベースの再生がサポートされます。
ストリームの取り込みにH.265を使用しているときに、ブラウザでRTSを使用してビデオを再生できない場合はどうすればよいですか?
ブラウザのネイティブWebRTCはH.265をサポートしていません。 H.264をストリーム取り込みに使用する必要があります。 Alibaba Cloudサービスを使用して、H.265ストリームをH.264ストリームにトランスコードして再生することもできます。
どのブラウザがRTSと互換性がありますか?
RTSと互換性のあるブラウザについては、「サポートされているブラウザのバージョン」をご参照ください。
一部のAndroidデバイスのQQブラウザがストリームのプルと取り込みに失敗するという問題を解決するにはどうすればよいですか?
Huawei P20やvivo iQOOなどの一部のAndroidデバイスは、QQブラウザをインストールして初めてブラウザを開いた後、X5カーネルを起動できない場合があります。 その結果、WebRTCの互換性の問題が発生し、ストリームをプルして取り込むことができません。 次のエラーメッセージが報告されます。'RTCPeerConnectionで 'setRemoteDescription' の実行に失敗しました。 この問題が発生した場合は、次の手順を実行して、X5カーネルが初期化されていることを確認します。
WI-FIネットワークに接続します。
ページを更新し、約30秒待ちます。
ブラウザを再起動して、ページに再度アクセスします。 問題は解決されました。
一部のブラウザがWeb RTS SDKをサポートしないのはなぜですか?
次のいずれかの理由により、ブラウザがWeb RTS SDKをサポートしていません。
ブラウザはWebRTC関連のAPI操作を実装しないか、またはAPI操作を欠陥のある方法で実装します。 たとえば、Microsoft Internet ExplorerやUC Browserなどです。
ブラウザはWebRTC関連のAPI操作をサポートしています。 ただし、ブラウザはVP8エンコーディングをサポートしますが、H.264エンコーディングはサポートしません。 たとえば、一部のAndroidデバイスの内蔵ブラウザです。
iOSのSafariがエラーメッセージ「Failed to set remote answer sdp」を報告するのはなぜですか?
問題の説明: 次のエラーメッセージが表示されます。
Failed to set remote answer sdp: The order of m-lines in answer doesn't match order in offer.
分析: 他のWebRTC SDKを統合したため、webrtc-adapterの競合が発生します。 この問題を防ぐため、RTS SDKはV2.2.4からアダプターを除外します。 RTS SDK V2.2.4以降は、他のWebRTC関連のSDKとともに使用できます。
JavaScriptを使用して、RTS SDK V2.2.4以降を直接統合できます。
npmを使用してRTS SDKを統合する場合は、次のコードをコンパイルします。
import { AliRTS } from 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js';
TypeScriptプロジェクトで、型サポートを取得するにはモジュールを宣言する必要があります。
// Create file typings.d.ts in the root directory of the project. declare module 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js' { import {AliRTS} from 'aliyun-rts-sdk'; export {AliRTS} }