Skip to main content
Version: 5.3

Peer video resolution in a group call

In a video group call, applications call requestPeerVideo() to request a video stream from a specific peer. This page describes how to set a video resolution when requesting a video stream.

Supported call typeSupported SDK version
Group call (conference)All versions

Overview

In general, a higher number of video streams leads to more CPU and memory consumption. Also, higher video resolutions require more network bandwidth. Excessive use of CPU, memory, or network bandwidth results in poor call quality for users. In other words, calling requestPeerVideo() with an inappropriate video resolution can degrade audio quality as well as video quality.

Therefore, determining a reasonable resolution is critical to achieving a better video conferencing. The following are resolution values recommended by WebPlanetKit, but applications should optimize the values for their own requirements.

Recommended resolutions by the number of video streams are as follows:

Recommended resolutions for Web
Grid-view11–8: VGA
9+: QVGA
Focus-view21 HD and QVGAs
Screen share3All QVGAs

1 Grid-view is a type of tile view. All windows to be rendered for each stream are the same size.
2 Focus-view has one largest window and the others are the minimum size.
3 Screen share means recommended video resolutions during screen share.

Example

Here is an example of how to use requestPeerVideo() with a proper video resolution. In this example, let's assume that you decided to display videos in VGA for up to 3 participants and in QVGA for 4-8 participants.

Group call peer video resolution setting sequence diagram

User-01 and User-02 join the group call first with their video on. For the basic join flow of a group call, see Group call flow.

User-03 joins the group call with video on. When User-03 joins, all existing participants are informed of the new participant by the evtPeerListUpdated event. In addition, the list of participants who enabled video is updated by the evtPeersVideoUpdated event.

With the events, User-03 recognizes that the group call currently has three participants and three video streams including oneself. By the design of the application, User-03 should request two video streams in VGA resolution, and this happens when User-03 calls requestPeerVideo() for User-01 and User-02.

Likewise, User-01 and User-2 recognize that User-03 has joined with video on. As shown in the figure above, User-01 and User-02 call requestPeerVideo() for User-03 to display User-03's video in VGA.

After a while, User-04 joins the group call with video on. User-03 recognizes that the number of participants in the group call has increased, and should trigger the presentation of video in QVGA. Therefore, User-03 calls updatePeerVideo() for User-01 and User-02 to change the resolution of their video to QVGA. After that, User-03 calls requestPeerVideo() for User-04 to request video in QVGA.

APIs related to peer video resolution setting in group calls are as follows.