リアルタイムストリーミング (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 のシグナリングプロトコルの仕様に準拠している必要があります。詳細については、「GRTN 標準 WebRTC アクセスのためのシグナリングプロトコル仕様」をご参照ください。
WebクライアントからRTSでインジェストしたストリームを再生できないのはなぜですか?
ネイティブブラウザーのWebRTCに関する制限により、Web RTS SDK には以下の制約があります。
B フレームを含む動画はサポートされていないため、再生でコマ落ちが発生したり、途切れたりする原因となります。
AAC でエンコードされた音声はサポートされていないため、ノイズの原因となります。
これらの問題を解決するには、ApsaraVideo Live コンソールで [Live +] > 超低遅延ライブ に移動します。[リアルタイムストリーミング (RTS)] を有効にし、サブ秒遅延 (エンドツーエンドの遅延は 400 ms ~ 800 ms) を選択します。システムは B フレームまたは AAC 音声を含むストリームを自動的に検出し、トランスコードします。トランスコード料金が発生します。詳細については、「RTS の料金」をご参照ください。
Web SDKでの動画解像度のカスタマイズ
Web SDK で動画解像度をカスタマイズする手順については、「Web 共同ストリーミング SDK API リファレンス」をご参照ください。
ネットワーク品質が低い場合のOBS設定の最適化
ネットワーク品質が低い環境でストリームインジェストを行うために OBS (Open Broadcaster Software) を最適化するには、次の手順に従ってください。
OBS を起動します。
左上の [ファイル] をクリックし、[設定] を選択します。
[設定] ウィンドウで、左側のパネルから [出力] を選択し、[出力モード] を [詳細] に設定します。[配信] タブで、[映像エンコーダ] を [QuickSync H.264] に、[レート制御] を [CBR] に、[ビットレート] を [2500 Kbps] に設定します。
[配信] タブで、ネットワーク品質が低い場合に対応するようにエンコーダーを設定できます。
エンコーダー設定で、[キーフレーム間隔] (例:2 s) と [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 ブラウザがストリームのプルとインジェストに失敗する問題の解決方法
- Wi-Fi ネットワークに接続します。
- ページを更新し、約 30 秒待ちます。
- ブラウザを再起動し、再度ページにアクセスします。問題が解決します。
一部のブラウザが Web RTS SDK をサポートしない理由
- ブラウザが WebRTC 関連の API を実装していない、または正しく実装していない。例:Microsoft Internet Explorer、UC ブラウザ。
- ブラウザが 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.このエラーは、RTS SDK と他の WebRTC SDK を同時に統合すると、webrtc-adapter の競合が発生するために起こります。V2.2.4 以降、RTS SDK はこの問題を防ぐためにアダプターを除外しています。他の WebRTC 関連 SDK と併用する場合は、RTS SDK V2.2.4 以降を使用してください。
- JavaScript を使用して RTS SDK を統合する場合は、RTS SDK V2.2.4 以降を直接インクルードしてください。
- npm を使用して RTS SDK を統合する場合は、次のコードを追加してください:
import { AliRTS } from 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js';TypeScript プロジェクトの場合は、型サポートを利用するには、モジュールを宣言してください:// プロジェクトのルートディレクトリにファイル typings.d.ts を作成します。 declare module 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js' { import {AliRTS} from 'aliyun-rts-sdk'; export {AliRTS} }
RTSソース録画に音声がない
RTS ストリームのソース録画に音声がない場合は、次の手順でトラブルシューティングを行ってください。
ソースストリームに音声が含まれているか確認する: ApsaraVideo Live コンソールにログインします。ナビゲーションペインで、 を選択します。ストリームデータの検索 を使用して、ストリームデータ の 音声ビットレート を表示してください。オーディオビットレートが 0 より大きい場合、ソースストリームには有効な音声が含まれています。
プレーヤーがサポートする音声エンコーディング形式を確認する: ほとんどすべての形式をサポートする VLC などのプレーヤーを使用することを推奨します。
録画トランスコードテンプレートを構成する: プレーヤーがソース音声形式をサポートしておらず、ソースエンコーディングやプレーヤーを変更できない場合は、録画トランスコードテンプレートを構成して、録画前に音声を AAC などの一般的な形式にトランスコードしてください。トランスコード料金が発生します。