リアルタイムストリーミング (RTS) に関するよくある質問と回答です。再生の問題、エンコーディングの互換性、レイテンシーのトラブルシューティングなどを扱います。
同じライブストリームで標準ライブストリーミングとリアルタイムストリーミング (RTS) の両方を使用できますか?
はい。ApsaraVideo Live では、標準ライブストリーミングと RTS 用に個別の再生 URL が生成されます。たとえば、標準ライブストリーミングでは RTMP URL を使用します:rtmp://${playback domain}/AppName/StreamName?${access token}。一方、RTS では artc URL を使用します:artc://${playback domain}/AppName/StreamName?${access token}。
自社開発の SDK を使用してリアルタイムストリーミング (RTS) と統合できますか?
はい。ただし、SDK は Alibaba Cloud のシグナリングプロトコル仕様に準拠している必要があります。詳細については、「標準 WebRTC アクセス用 GRTN シグナリングプロトコル仕様」をご参照ください。
Web クライアントから RTS を使用してインジェストされたストリームを再生できないのはなぜですか?
WebRTC に対するネイティブブラウザの制限により、Web RTS SDK には以下の制約があります:
-
B フレームを含む動画はサポートされていません。これにより、再生がスキップしたりカクついたりする場合があります。
-
AAC エンコーディングのオーディオはサポートされていません。これにより、ノイズが発生する場合があります。
これらの問題を解決するには、ApsaraVideo Live コンソールで Live+ > リアルタイムストリーミング (RTS) に移動します。リアルタイムストリーミング (RTS) を有効にして、サブ秒レイテンシー (エンドツーエンドレイテンシー 700 ms~900 ms) を選択します。システムは、B フレームまたは AAC オーディオを含むストリームを自動的に検出し、トランスコーディングします。トランスコーディング料金が適用されます。詳細については、「RTS 料金」をご参照ください。
Web SDK で動画解像度をカスタマイズするにはどうすればよいですか?
Web SDK で動画解像度をカスタマイズする手順については、「Web 共同ストリーミング SDK API リファレンス」をご参照ください。
ネットワーク状態が悪い環境で OBS の設定を最適化するにはどうすればよいですか?
ネットワーク状態が悪い環境でストリームインジェスト用に OBS (Open Broadcaster Software) を最適化するには、次の手順を実行します:
-
OBS を起動します。
-
左上隅の [ファイル] をクリックし、[設定] を選択します。
-
[設定] ウィンドウで、左側のパネルから [出力] を選択し、[出力モード] を [詳細] に設定します。[配信] タブで、[映像エンコーダ] を [QuickSync H.264] に、[レート制御] を [CBR] に、[ビットレート] を [2500 Kbps] に設定します。
-
[配信] タブで、ネットワーク状態が悪い環境に対応するようにエンコーダーを設定できます。
-
エンコーダーの設定で、キーフレーム間隔 (たとえば、2 秒に設定) と B フレーム数 を増やすと、スムーズさが向上します。
-
左側のパネルから [映像] を選択します。[基本 (キャンバス) 解像度] を [1920x1080] に、[出力 (スケーリング) 解像度] を [1280x720] に、[縮小フィルター] を [バイキュービック (シャープ化されたスケーリング、16 サンプル)] に、[共通 FPS 値] を [30] に設定します。
-
安定した接続のために、Wi-Fi ではなく有線 LAN を使用し、帯域幅を消費する他のアプリケーションを閉じてください。
-
設定を完了したら、[適用] をクリックし、次に [OK] をクリックして変更を保存します。
リアルタイムストリーミング (RTS) でレイテンシーが高いのはなぜですか?
RTS はミリ秒レベルのレイテンシー向けに設計されています。レイテンシーが 1 秒を大幅に超える場合は、次の手順でトラブルシューティングを行ってください:
-
1. インジェストクライアントのネットワーク状態を確認します。
ApsaraVideo Live コンソール にログインします。ナビゲーションペインで、 を選択します。
ストリームの AppName と StreamName を入力し、インジェストフレームレート、ビットレート、タイムスタンプに異常がないか確認します。
-
2. RTS TraceID を取得し、チケットを送信します。
インジェストフレームレート、ビットレート、タイムスタンプが正常であるにもかかわらず、高いレイテンシーやカクつきが発生する場合は、プレーヤーデモでストリームを再生し、セッションの RTS TraceID を取得してください。手順については、「プレーヤーデモで RTS TraceID を取得する」をご参照ください。その後、「お問い合わせ」に記載されている手順に従って、Alibaba Cloud テクニカルサポートにチケットを送信してください。
Web RTS インジェストによる HLS/FLV 再生でオーディオが欠落するのはなぜですか?
Web RTS インジェストでは、オーディオが OPUS 形式でエンコーディングされますが、これは FLV および HLS プレーヤーと互換性がありません。FLV および HLS 再生をサポートするには、代わりにストリームインジェストに RTMP を使用してください。標準の HLS および FLV 再生と並行して、低レイテンシー再生に RTS を使用することもできます。
H.265 RTS ストリームがブラウザで再生されないのはなぜですか?
ブラウザのネイティブ WebRTC は H.265 をサポートしていません。インジェストされたストリームが H.264 エンコーディングを使用していることを確認するか、ApsaraVideo Live でトランスコーディングを有効にして、再生用に H.265 を H.264 に変換してください。
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} }
RAW RTS 録画にオーディオがない
RTS ストリームの RAW 録画にオーディオがない場合は、次の手順でトラブルシューティングを行ってください:
-
ソースストリームにオーディオが含まれているかどうかを確認します: ApsaraVideo Live コンソール にログインします。ナビゲーションペインで、 を選択します。ストリームデータの検索 を使用して、音声ビットレート の ストリームデータ を確認します。オーディオビットレートが 0 より大きい場合、ソースストリームには有効なオーディオが含まれています。
-
プレーヤーがサポートするオーディオエンコーディング形式を確認します: ほぼすべての形式をサポートする VLC などのプレーヤーを使用することを推奨します。
-
録画トランスコーディングテンプレートを設定します: プレーヤーがソースオーディオ形式をサポートしておらず、ソースエンコーディングやプレーヤーを変更できない場合は、録画トランスコーディングテンプレートを設定して、録画前にオーディオを AAC などの一般的な形式にトランスコーディングしてください。トランスコーディング料金が適用されます。