Inefficient Simulcast detected

outboundvideo

The encoder implementation is using multiple singlecast encoders which is less efficient than using a single libvpx encoder for simulcasting.

Description

When using simulcast in WebRTC, the browser can implement it in different ways. The most efficient approach is to use a single libvpx encoder that can handle multiple simulcast layers simultaneously. However, when the resolution of the different layers doesn't follow a strict 4:2:1 ratio, this requires several libvpx encoders to handle each stream separately.

This adapter approach is less efficient because:

  • It requires multiple encoder instances instead of one
  • It increases CPU usage and memory consumption
  • It may introduce additional latency in the encoding pipeline

What do we do here?

We check the encoderImplementation property in the outbound video RTP statistics. When we detect that the encoder implementation is set to "SimulcastEncoderAdapter", we mark this as an observation.