Scaling calls in Daily applications
Daily's platform supports multiple different approaches to building large-scale experiences. Platforms to support large sessions can be built using either Daily Prebuilt or Daily's Client SDKs. In either case, core Daily features like recording, output to live streaming platforms, and transcription are all available.
Each approach differs in terms of latency and scale:
- Large calls (1,000 participants, all active)
- Interactive live streaming (100,000 participants, 25 active)
- RTMP output (live streaming) (Output any Daily-powered real-time video session to an RTMP endpoint)
Large calls (1,000 participants, all active)
- In a large call, all participants can have their cameras and microphones on
- A Daily large call supports up to 1,000 active participants
- Real-time call (<200ms latency), built on Daily's WebRTC platform
- The default participant limit is 200. Contact us to enable 1,000 participant support
Interactive live streaming (100,000 participants, 25 active)
- All 100,000 participants can join the session in real-time (<400ms latencies)
- Up to 25 cams/mics can be on
- Real-time session, built on Daily's WebRTC platform. There is no "chat lag" or traditional live streaming latency
- Contact us to enable 100,000 participant support
- After support enables interactive live streaming for your domain, you will need to set up specific room configuration settings for your Daily Prebuilt or custom implementation
RTMP output (live streaming)
- Stream a Daily-powered video call to any RTMP or HLS platform (Facebook Live, Twitch, etc.)
In a large experience, "active" participants are participants who have a "presence" in a call. They can turn on their devices during the call and have their participant information available in the participants()
method's return value. Hidden (or "passive") participants are considered to not have a "presence." They can view a real-time call, but cannot turn on their devices and do not have their participant information returned by the participants()
method.
Active and hidden participant count totals can be retrieved via the participantCounts()
method and tracked via the "participant-counts-updated"
event.
To learn more about required room configurations, as well as general tips for scaling calls effectively and performantly, read the following guides: