New off-stage layer suppression feature

August 7, 2018 / Simulcast

We have a new feature called off-stage layer suppression that helps save bandwidth and CPU for both end users and the Videobridge. To help handle the varying video qualities needed for the active speaker and smaller thumbnail views used for other participants, we use a technique called simulcast.

chrome://webrtc-internals charts showing off-stage layer suppression working

Simulcast lets us send multiple video streams with varying bandwidths/quality at once. The Videobridge selects the appropriate streams to send to each user.  While Videobridge already optimizes which stream the browser client receives, each browser must still encode multiple stream layers and send them to the Videobridge. Each of these uploaded streams consumes bandwidth and CPU and when there isn’t enough of either they also compete with each other for resources which can reduce quality.

Off-stage layer suppression lets the client only send the streams that are being viewed at a given time, reducing CPU and bandwidth consumption on both client-side and server-side while improving video quality. This may sound simple, but there are a number of obstacles in browser implementations that make this difficult.  Our own Brian Baldino wrote a detailed post explaining our exploration of this capability and implementation over at webrtcHacks you should check out for more details: https://webrtchacks.com/suspending-simulcast-streams/

This feature will start working with Chrome 69 which is estimated to be in Stable in early September.