Adaptive video streaming
Over the last couple of months, we released many video streaming-related improvements and tested them with several customers. In this blog post, we’d like to summarize all the changes and how they can improve the video experience for your team.
Simulcast is a technique when each client is encoding high/medium/low resolutions of video. Then the media server in the cloud decides which stream to forward to which participant based on their network quality and video element dimensions.
Encoding multiple video streams will slightly increase the CPU consumption, but it will pay back by significantly reducing CPU consumption when four or more people join. This also enables adaptive streaming capabilities outlined below.
Depending on your screen resolution and UI layout selection, you’ll receive a video stream that’s best suited for the size of the video element.
For example, if you switch from a notes-focused layout to video-focused layout, you’ll start to receive larger video resolutions, and when you switch back to notes-focused, it will instantly scale back.
When the network quality degrades, you’ll start receiving videos in lower resolution to avoid network congestions that may interrupt the audio.
When network connection degrades to the level when even the smallest resolutions of videos can’t be efficiently streamed without impacting high-priority audio streams, we may have to switch off some of the videos entirely.
We’ll first try to turn off the least active participants (we’ll always show the main speaker). And we’ll turn videos back once the network conditions improve.
When the video element is not visible (e.g., due to scroll) or the entire tab is inactive (e.g., when you screen share another tab), we’ll automatically pause video streaming and instantly resume when it’s visible again.
Our maximum downlink bandwidth is 4Mbps, but sometimes it can be too much for some users/situations. E.g., consistently poor network, expensive data plan, or low power device. In those situations, you can set a smaller bandwidth limit for a more consistent and smooth experience. This will result in reduced resolutions and low priority video switch-offs.
To enable all these features in your workspace, please ask the administrator to enable it in Admin -> Experiments - Adaptive video streams.