Unlock next-gen video quality with Daily Adaptive Bitrate, combining ultra-reliable calls and the best visual experience your network can offer — automatically adjusting in real time to your changing needs.
Overview
Video calls must be reliable. With traditional simulcast technology, achieving reliability requires conservative preconfigured settings — which means users may get a sub-par visual experience. Increasing the bitrate improves quality but risks call reliability. The root of the quality-reliability trade-off is how traditional simulcast works: a sender has a predefined number of layers (usually three) with settings statically configured before the call. If a network issue arises, the only options are to reduce frame rate or drop to a lower layer. Example with static simulcast: You configure three layers:
A user joins on a WiFi network with 5 Mbps download / 1 Mbps upload. Due to the slow upload speed, they can’t send all three layers. Result: they send either 360p @ 15fps or 240p @ 15fps.
With Daily Adaptive Bitrate:
Instead of static settings, Daily automatically adjusts to changing network conditions. When bandwidth is constrained, bitrate and resolution are reduced to keep the call connected. When bandwidth is available, bitrate and resolution increase up to 2 Mbps at 720p.
The same user on the same network would instead:
- Send video at 540p @ 30fps (~800 kbps)
- Receive video at 720p @ 30fps (~2 Mbps)
Usage
daily-js and react-native-daily-js
Adaptive Bitrate is enabled by default for alldaily-js and react-native-daily-js clients — this includes both Daily Prebuilt and custom call object apps. No additional configuration is required.
To disable it, set enable_adaptive_simulcast to false on the domain or room.
Minimum supported versions:
daily-js:0.60.0or laterreact-native-daily-js:0.61.0or later
daily-android, daily-ios, and python
Adaptive Bitrate is not enabled by default for native SDK clients. To enable it:- Set
enable_adaptive_simulcasttotrueon the domain or room. - Set
allowAdaptiveLayers: truein your client’ssendSettings. [ Android docs | iOS docs | Python docs ] - Use the VP8 video codec — Adaptive Bitrate is only supported with VP8 on native clients.
daily-android:0.18.0or laterdaily-ios:0.18.0or laterdaily-python:0.18.0or later
Multi-party Adaptive Bitrate
Multi-party Adaptive Bitrate is off by default for all clients. Enable it via theenable_multiparty_adaptive_simulcast domain property or room property.
Caveats
- Daily Adaptive Bitrate works for camera video only.
- In 1:1 calls, when a third participant joins, standard simulcast is automatically enabled. When the call drops back to two participants, Adaptive Bitrate re-enables automatically.
- Works best on Chrome and Safari (desktop and mobile). Firefox users can join, but will send video using 3-layer simulcast.