グループ通話でピアのビデオ解像度の設定
アプリケーションは、グループビデオ通話でPlanetKitPeerControl
のstartVideo()
を呼び出すことで、特定のピアからビデオストリームをリクエストできます。ここでは、ビデオストリームをリクエストする際にビデオの解像度を設定する方法について説明します。
対応する通話タイプ | 対応するSDKバージョン |
---|---|
グループ通話(カンファレンス) | 0.9 |
PlanetKitPeerControl
の使い方について詳しくは、グループビデオ通話のサンプルコードを参照してください。
概要
startVideo()
を呼び出す際に、解像度のタイプを設定できます。使用可能な解像度タイプのうちrecommended
を設定すると、PlanetKitが状況に応じて解像度を自動で調整します。thumbnail
、qvga
、vga
またはhd
を使用すると手動で解像度を設定できます。
LINE Planetは、適応型ビットレート機能に対応しています。ビデオの解像度は、ビットレート制御の対象であるため、推奨解像度(RECOMMENDED)または特定の解像度(HD、VGAなど)に設定しても、ネットワークの状況によって低い解像度に調整されたり、回復されたりすることがあります。
推奨解像度を使用する
通常の場合、ビデオストリーム数が多いほどCPUとメモリの使用量は増えます。また、解像度が高いほどより多くのネットワーク帯域幅が必要になります。CPUやメモリ、ネットワークを使いすぎると、ユーザーは低品質な通話を体験することになります。つまり、不適切な解像度でstartVideo()
を呼び出した場合、ビデオ品質だけでなくオーディオ品質も低下する恐れがあります。
最適な品質を維持するために、PlanetKitはピア数に応じて適切な解像度を内部で定義します。ビュースタイルごとの推奨設定は次のとおりです。
- グリッドビュー:すべてのピアを
recommended
に設定する - フォーカスビュー:特定のピア1つをHDに設定し、その他のピアは
recommended
に設定する
次のセクションでは、1つ以上のピアに対して解像度がrecommended
に設定されている場合の、PlanetKitが定義する解像度の値を示します。解像度が、ネットワーク環境によって初期の設定より一時的に低くなる場合があることにご注意ください。
すべて推奨解像度に設定する
グリッドビューのようなビュースタイルの場合、すべてのピアの解像度をrecommended
に設定することをお勧めします。この場合、PlanetKitは内部で次のように解像度を決定します。
iOSおよびAndroid | |
---|---|
すべてrecommended に設定 | ビデオピア1数 1-3:VGA ビデオピア数 4-8:QVGA ビデオピア数 9+:THUMB2 |
画面共有3 | すべてTHUMB |
1 ビデオピアとは、ビデオをリクエストされたピアのことです。したがって、ビデオピア数は参加者の総数とは異なる場合があります。
2 THUMBは、サムネイルのサイズのことです。
3 画面共有時の他のピアの解像度はサムネイルサイズに変更されます。
推奨解像度と特定の解像度を設定する
フォーカスビューのようなビュースタイルの場合、特定のユーザーに対して高い解像度を設定する必要があります。この場合、高解像度とrecommended
の組み合わせで構成されます。PlanetKitは内部で次のように解像度を決定します。
iOSおよびAndroid | |
---|---|
recommended 設定とHD設定 | HDに設定されたピア以外すべてTHUMB |
recommended 設定と特定の解像度を設定(HD以外) | recommended に設定されたピア:ビデオピア数 1-3:VGA ビデオピア数 4-8:QVGA ビデオピア数 9+:THUMB 特定の解像度に設定されたピアは、手動設定に従います。 |
画面共有 | すべてTHUMB |
特定の解像度を使用する
startVideo()
を呼び出す際に、特定の解像度を設定することもできます。
以下は適切なビデオ解像度でstartVideo()
を呼び出す例です。ここでは、上表の推奨のように、参加者が最大3人のときはVGAで表示し、4人以上のときはQVGAで表示することにします。
User-01とUser-02がグループ通話に参加してビデオをオンにします。グループ通話に参加する基本的な流れはグループ通話フローを参照してください。
User-03が参加すると、すべての参加者はonPeerListUpdated
イベントを通じて新しい参加者が誰なのかを知ることができます。また、ビデオをオンにした参加者に対してonVideoUpdate
イベントが発生します。
イベントを送信する際にUser-03は、現在グループ通話に自分を含めて3人がいて、ビデオストリームも3つあることが分かります。アプリケーションの設計によって、User-03はVGA解像度で2つのビデオストリームをリクエストする必要があります。User-01とUser-02のためにそれぞれstartVideo()
を呼び出します。
同様に、User-01とUser-2もUser-03がビデオをオンにした状態で参加したことが分かります。上図のようにUser-01とUser-02がUser-03のビデオをVGAで表示するためにstartVideo()
を呼び出します。
しばらくしてからUser-04が参加します。User-03はグループ通話の参加者数が増えたことがわかったので、QVGAで表示する必要があります。したがって、User-03はUser-01とUser-02の解像度をQVGAに変更するようにstartVideo()
を呼び出します。その後、User-04のQVGA解像度のビデオをリクエストするためにstartVideo()
を呼び出します。
関連API
グループ通話でピアのビデオ解像度の設定に関連するAPIは次のとおりです。