Choosing Configuration for your use case
To choose a configuration for video streams, we recommend you carefully consider the below use cases, the intended layout, and how the app will be used. Different configurations will have different effects on bandwidth consumption, performance, and battery life.
User Experience Recommendation
- You can only have one view per stream of video, i.e., you cannot render the same video in two different views on screen.
- You can request a specific video quality, but it may not be provided depending on the network or other factors.
- The BlueJeans systems will downgrade the video stream if it exceeds the available bandwidth. We recommend that you only request high video quality when you need it. Otherwise, the user's bandwidth will be consumed more than necessary.
- We recommend that you do not change the positioning of the participant frequently during the meeting. This may cause disorientation in the meeting experience, it may also cause performance issues in some mobile devices.
Note
- You should only request the quality you require (e.g. The 720p video should not be requested for a small thumbnail because it is not necessary, consumes more bandwidth, and consumes more power).
- The
videoStreamsarray will only be populated with streams of video from participants with video on. For the best meeting experience, it is important to consider both participants with video only and those with audio. - You may use the observable array of participants in the
ParticipantsServiceto observe and calculate variables such as join time, mute states, and time spent as the dominant speaker. Using these variables to inform the ordering of participants in the meeting. - The requested video stream resolutions can be served on a best-effort basis. BlueJeans systems will dynamically adapt the resolution to a lower/higher value, as suitable, depending on your network and hardware capabilities.
One-to-one call (TeleHealth use case)
Telehealth is the use of digital information and communication technologies to remotely access medical services and manage medical care. You can customize the layout for telehealth sessions video appointments, virtual consultations, group therapy, and more to match your specific needs.
A sample use case (1-1) has been listed below. In your use case, you just have one remote video is necessary where video.
let configuration = webClientSDK.meetingService.videoStreamService.setVideoStreamConfiguration([
{participantGuid:"<participantGuid>",streamQuality:"r720p_30fps",streamPriority:"HIGH"}]
);
You can alter the stream quality with your choice's high, medium, and low quality.
Note
BlueJeans SDK downgrades the video stream when it exceeds the available bandwidth. We recommend that you request only the quality that you need. Otherwise, the user's bandwidth will be used more than necessary.
Remote Learning
The remote learning use case is given below, where you may have a virtual classroom in which the teacher's/trainer's video should be a bigger share (higher resolution) of the view space compared to other student video tiles with lower resolution.
Use the following configuration where the teacher/trainer/moderator is shown in screen view with high resolution (720p), while the rest of the participants/students are shown in a grid of small tiles at low resolution (90p 15fps).
webClientSDK.meetingService.videoStreamService.setVideoStreamConfiguration([
{participantGuid:"<MODERATOR_GUID>",streamQuality:"r720p_30fps",streamPriority:"HIGH"},
{participantGuid:"<PARTICIPANT_GUID>",streamQuality:"r90p_15fps",streamPriority:"LOW"},
{participantGuid:"<PARTICIPANT_GUID>",streamQuality:"r90p_15fps",streamPriority:"LOW"},
{participantGuid:"<PARTICIPANT_GUID>",streamQuality:"r90p_15fps",streamPriority:"LOW"},
{participantGuid:"<PARTICIPANT_GUID>",streamQuality:"r90p_15fps",streamPriority:"LOW"},
{participantGuid:"<PARTICIPANT_GUID>",streamQuality:"r90p_15fps",streamPriority:"LOW"},
{participantGuid:"<PARTICIPANT_GUID>",streamQuality:"r90p_15fps",streamPriority:"LOW"}
])
Remote Learning in BlueJeans Sample App
The Web Client SDK sample app has an example of how to use video streams for remote learning. The main screen shows two shared screens with a high-quality video stream and high-speed frame rates. The moderator/teacher is on the left side of the screen and the moderator/teacher has a provision to add another teacher/student on the right side of the screen. The rest of the students are shown as thumbnails in alphabetical order with low-quality videos.
The remote learning use case in the BlueJeans sample app has the below features:
- The first moderator in the participant list will be given as a teacher with high quality.
- The rest of the remote participants are treated as students and shown as thumbnails with low quality.
- There can be a maximum of 25 video participants in the meeting, including the moderator and participants.
- The meeting participants can pin the other meeting participants, which will show up alongside the moderator/teacher.
- The meeting participants can pin other participants. The pinned participant will appear next to the moderator/teacher with high quality.

The above image shows how two instructors can use remote learning to teach eight students.
Video Stream Priority
Stream prioritization provides you to have more control over the playback video by allowing you to specify priority order for the streams. Below is a list of the video streams that are prioritized:
- The high-priority video stream receives the video of the most recent speaking participant.
- Higher priority streams are allocated bandwidth before lower priority streams.
- The overall configuration should be ordered from highest to lowest priority.
To guarantee a particular stream will receive a higher resolution than other streams, the stream should have a distinct, and higher priority than the other streams.
The below use case explains the scenario where stream priority will be chosen according to the active speakers. An active speaker will be shown on the screen with 720p, the preceding speaker will be shown 360p with 30fps, the earlier preceding speaker will be shown 360p with 15 fps, and 6 more participants shown 180p at 15 fps with low stream priority.
webClientSDK.meetingService.videoStreamService.setVideoStreamConfiguration([
{streamQuality:"r720p_30fps",streamPriority:"HIGH"},
{streamQuality:"r360p_30fps",streamPriority:"MEDIUM"},
{streamQuality:"r360p_15fps",streamPriority:"MEDIUM"},
{streamQuality:"r180p_15fps",streamPriority:"LOW"},
{streamQuality:"r180p_15fps",streamPriority:"LOW"},
{streamQuality:"r180p_15fps",streamPriority:"LOW"},
{streamQuality:"r180p_15fps",streamPriority:"LOW"},
{streamQuality:"r180p_15fps",streamPriority:"LOW"},
{streamQuality:"r180p_15fps",streamPriority:"LOW"}
]);