ビデオの問題の概要

ビデオ通話の確立には、多くのコンポーネントとプロセスが含まれます。 手順には、カメラ デバイスからのビデオ ストリームの取得、ブラウザーのエンコード、ブラウザーのデコード、ビデオ レンダリングなどが含まれます。 これらの段階のいずれかに問題がある場合、ユーザーにビデオ関連の問題が発生する可能性があります。 たとえば、ユーザーがビデオを見られない、またはビデオの品質が低いと文句を言う可能性があります。 そのため、ビデオの問題をデバッグして軽減するには、送信者から受信者側へのビデオ コンテンツの流れを理解することが重要です。

ビデオ通話のエンド ツー エンドの観点からの動作

ビデオ ストリーム データのエンド ツー エンド フローの図

ここでは、Azure Communication Services グループ呼び出しを例として使用します。

送信者が通話でビデオを開始すると、SDK はブラウザー API を介してカメラ ビデオ ストリームを内部的に取得します。 SDK は、サーバーとのシグナリング層でハンドシェイクを完了すると、ビデオ ストリームのサーバーへの送信を開始します。 ブラウザーは、RTP (リアルタイム トランスポート プロトコル) 層でビデオ エンコードとパケット化を実行して伝送します。 通話の他の参加者は、送信者からのビデオ ストリームの可用性を示す通知をサーバーから受信します。 アプリケーションは、ビデオ ストリームをサブスクライブするかどうかを決定できます。 アプリケーションがサーバーからビデオ ストリームをサブスクライブしている場合 (createView API を使用するなど)、サーバーは送信者のビデオ パケットを受信者に転送します。 受信側のブラウザーは、受信ビデオをデコードしてレンダリングします。

ビデオ通話に ACS Web Calling SDK を使用すると、SDK とブラウザーは、使用可能な帯域幅に基づいて送信者のビデオ品質を調整できます。 調整には、解像度、1 秒あたりのフレーム数、ターゲット ビットレートの変更が含まれる場合があります。 さらに、送信者側の CPU オーバーロードは、エンコードのターゲット解像度に関するブラウザーの決定にも影響を与える可能性があります。

ビデオ通話の一般的な問題

プロセス全体に送信者のカメラ デバイスなどの要因が含まれていることがあります。 送信者側と受信者側のネットワーク条件も重要な役割を果たします。 帯域幅と失われたパケットは、ユーザーが認識するビデオ品質に影響を与える可能性があります。

ここでは、いくつかの一般的なビデオの問題と、各問題の潜在的な原因を示します。

ユーザーがリモート参加者からのビデオを表示できない

  • 送信者のビデオが、ユーザーがサブスクライブしたときに使用できない
  • ビデオのサブスクライブ中にリモート ビデオが使用できなくなった
  • アプリケーションがビデオのサブスクライブ中にビデオ レンダラーを破棄した
  • アクティブなビデオ サブスクリプションの最大数に達した
  • ビデオ送信者のブラウザーがバックグラウンドにある
  • ビデオ送信者が予期せず通話を切断した
  • ビデオ送信者にネットワークの問題が発生している
  • 受信側でネットワークの問題が発生している
  • フレームは受信されるがデコードされない

ユーザーにリモート参加者からの黒いビデオのみが表示される

  • ビデオ送信者のブラウザーがバックグラウンドにある

ユーザーに表示されるビデオ品質が低い

  • ビデオ送信者のネットワーク状態が悪い
  • 受信者のネットワーク状態が悪い
  • ビデオ送信者または受信者の環境の負荷が高い状態にある
  • 受信者が複数の受信ビデオ ストリームをサブスクライブする