Adaptive Bitrate (Simulcast)

Simulcast enables Adaptive Bitrate (ABR) in video conferencing scenarios. This means 100ms SDKs can upgrade or downgrade video quality for remote tracks based on user preferences or network conditions.

Minimum Requirements

  • SDK version 2.5.2 or higher
  • Simulcast enabled in room template

100ms SDK Simulcast APIs

You interact with the simulcast feature by setting HMSRemoteVideoTrack's setLayer function. By default the layer is set to high i.e HMSLayer.HIGH Let's look at the track interface:

class HMSRemoteVideoTrack { /** * Public api to set layer to [HMSLayer.HIGH], [HMSLayer.LOW], [HMSLayer.MEDIUM] */ fun setLayer(HMSLayer: HMSLayer) /** * Public API to get layers definition */ fun getLayerDefinition() : List<HMSSimulcastLayerDefinition> /** * Public API to get the current selected HMSLayer */ fun getLayer() : HMSLayer } data class HMSSimulcastLayerDefinition( val resolution: HMSVideoResolution, val layer: HMSLayer ) enum class HMSLayer { LOW, MEDIUM, HIGH }

Here getLayerDefinition() property holds an array of currently available layers for the track and layer property is the currently selected layer. Within HMSSimulcastLayerDefinition you get its resolution and the layer name such as high/medium/low.

Disabling Auto Simulcast

You can read more about it here

Have a suggestion? Recommend changes ->

Was this helpful?