We spend a lot of time talking about all the things you can do and build with Daily APIs, but sometimes it’s hard to know how to put all that information together. Building large virtual event platforms, for example, can be a big undertaking with lots of variation between app features.
Thankfully, Daily has a ton of content related to building features typical of virtual event apps. To help developers parse through all these resources, today we’ll be going through existing Daily materials related to virtual event video call apps.
Though there will always be variation between different apps, the resources below should help you get started on making key decisions – like when to use Daily Prebuilt and when to go custom – as well as surfacing some developer content you may not have been aware of yet.
What is a virtual event?
A virtual event is any large event held online that allows speakers to present to an audience via video and/or audio.
Common types of virtual events include:
- Company summits
- Event commentary
- Watch parties
- Virtual spaces where participants can navigate and connect through a space online. (Check out our spatial audio/video demo for an example.)
Note: See our events use case page for more information on each.
In an interactive virtual event app, we’ll often see some combination of the following features:
- Main stage events, which require large broadcast sessions to hundreds or thousands of attendees
- The ability to bring audience members to the “stage” so they can speak or ask a question
- Smaller speaker sessions (50-300 people) separate from the main stage
- Round table discussions (10-25 people), which are often much more interactive for attendees
- Networking opportunities, like virtual booth exploration
- Q&A portions of the event, where attendees can ask speakers questions either with video, audio-only, or text-based chat
From a developer’s perspective, we can translate these features into the following requirements:
- There are hosts and speakers who can turn on their microphones and/or cameras
- There are attendees (or audience members) who can watch presentations, but who cannot turn on their own devices
- Large main stage calls can be converted to smaller breakout rooms with the ability for moderators to move attendees to different rooms
- There may be a Q&A portion where an attendee can temporarily get speaker status to turn on their devices
- Presentations are either live or prerecorded and streamed
- Presentations can be joined in real-time or live streamed to accommodate the largest audience size
- Live presentations can be recorded and shared with event attendees
Before moving on…
Before going too far into details, let’s review a couple things worth noting related to large video calls and Daily’s APIs.
Should I use Daily Prebuilt or build a custom app with Daily's core APIs?
Daily offers both an embeddable prebuilt video call UI (Daily Prebuilt), as well as access to
daily-js's core APIs to build a completely custom video call app. There are always trade-offs when deciding which to use, but ultimately it will depend on your app requirements.
In this post, we’ll reference both types of Daily video app – Daily Prebuilt and custom – so we’ll clarify when something only applies to one or the other. If you’re ever not sure, check out our reference docs which provide even more information.
Understanding video call participant count limits
In terms of hosting large video calls – virtual events or otherwise – limiting the number of devices that call participants are subscribed to (i.e. receiving video/audio tracks from) at any given time is one of the most important factors in being able to have more people join the call.
In cases like virtual events where everyone is watching the same presentation, this often means limiting the number of people who can turn on their devices. The fewer the devices on, the greater the number of attendees who can join. (Well, there are more factors but this is a big one!)
Luckily, restricting the number of enabled devices works well with the virtual event use case. At any given time, there will be a finite number of people actually speaking, while most attendees are instead just listening to the presentations. In sessions with smaller total participant counts, more people can turn on their devices. Thankfully, this often matches the user experience goals of a virtual event; as call sizes grow bigger, you typically want to limit how many people can turn on their devices. (Who wants to moderate a call where 1000s of people can all talk at the same time? 😱)
As a final note, it’s also worth mentioning the devices your audience members are using can also impact the call quality and participant count limits. We’ll take a closer look at mobile options further down, but keep in mind that building a virtual events app for mobile means you are typically more restricted with the number of devices subscribed to by participants.
The who, what, when, how, and what else of virtual events
Building a virtual event platform is a big topic so let’s break down how we’ll approach this.
So far, we’ve already covered what the common virtual event app features are.
In this following sections, we’ll look at:
- Who are the participants in the virtual event video call and how are we going to manage different participant types?
- When do these events happen (e.g. real-time vs live streamed)?
- And what else can I add to improve app functionality even more?
So, let’s get started!
Who are the participants in a virtual event video call?
As discussed above, in any virtual event, you typically want to divide your call participants into:
- Owners/moderators: Participants in charge of the event who have privileges like creating breakout rooms, muting speakers if needed, speaking to the audience, and so on
- Speakers: Participants who can turn on their devices but don’t need the extra event privileges
- Attendees/audience members: Participants who cannot turn on their device but can watch the event
These distinctions can be managed in a couple ways from a technical perspective:
- Room access settings
- Participant settings to distinguish between their access level
Now let’s take a closer look at participant settings.
How to create different participant types
From a technical perspective, one way we can differentiate between participant types is with Daily meeting tokens. A meeting token authenticates the participant using it before joining the call and allows for additional values to be set on the participant details.
For example, meeting tokens can be made with the
is_owner value set to
true to distinguish that participant as a call owner/moderator. This value also provides extra meeting privileges, as outlined in our meeting access guide.
Additionally, owner tokens can be used to allow specific participants to join the meeting without having to “knock” to join when the room is private.
Daily Prebuilt and broadcast calls
Daily Prebuilt offers a specific room setting – broadcast mode – to distinguish between participant types, which also relies on meeting tokens.
Broadcast mode enables the host and attendee (or few:many) dynamic, where participants with owner tokens can turn on their devices and everyone else cannot. It’s a quick and easy way to manage devices because only participants with tokens can enable them.
To support these two participant types, Daily Prebuilt’s UI is slightly different in broadcast mode to provide a cleaner, more limited UI for attendees viewing the presentation.
To learn more about broadcast mode and how to use it, read our broadcast deep dive post.
When do virtual event presentations occur?
Live virtual events can be divided into real-time events and live streamed events.
Real-time events refer to an actual video (or audio) call where participants can listen and potentially respond in real-time. That is, assuming they’re allowed to turn their microphones on! 🙊
Live streamed events are almost in real-time but typically have a two to 20 second latency period between the live event and the participant viewing the stream.
How to enable live streaming for virtual events
Live streaming can be preferable to “real-time” calls because it significantly increases how many attendees can watch your virtual event. You could, for example, host upwards of 15,000 people in your Daily video call and then live stream the call to make it available to anyone else who wants access to that content.
Heads up: The current participant limit is 15,000 people with 10 speakers, or 300 people where everyone can have devices on.
To learn more about how to live stream with Daily, check out our live streaming docs and and live streaming guide. We also have a tutorial on live streaming with Daily and Amazon IVS that steps through how to actually build the live streaming functionality into your Daily app.
Recording your event
For those who couldn’t attend live, it’s common to offer recordings of virtual events available after the event has ended.
Daily offers several types of recordings for Daily video calls. To learn more about Daily’s recording API, we’ve put together a recording guide that covers all our recording options. Additionally, we have a recent tutorial on working with the recording API to help you get started.
Psst... We have some exciting announcements related to live streaming and recording come up soon.
What else can I do with Daily?
There are lots of additional features you may want to add to your virtual event platform to help your customers have the best experience possible.
These features include:
- Transcribing presentations, either live or to make available later. Check out our reference docs and blog tutorial to learn more about Daily’s transcription APIs.
- Virtual backgrounds: Make your speakers’ lives easier by providing a little more privacy. Daily Prebuilt and custom apps both support background blur and custom image backgrounds. Learn how to implement these with our reference docs.
There are also more advanced custom features you may want to consider:
- Breakout rooms for smaller groups during virtual events.
- Accommodating a “producer” role where a participant can prepare speakers in a virtual green room
- Having multiple text-based chat channels, such as one for official questions for the speakers and one for attendee mingling
To learn more about how to implement these, please reach out!
Optimizing for large calls
Virtual events can technically be any size, but they tend to bring to mind BIG audiences. To help support developers building custom video apps that need to support large meeting sizes, we’ve put together a thorough guide on handling large calls.
We also have a series of blog post tutorials that go even more in-depth and use real code examples from our Daily track subscriptions demo app. This series uses the approaches we’ve learned and relied on while building Daily Prebuilt, so we highly recommend it!
Blog posts include:
- Add pagination to a custom Daily video chat app to support larger meetings
- Optimize call quality in larger calls by manually managing media tracks in a paginated video call UI
- Scale large video calls with dynamic simulcast layers using Daily’s receiveSettings API
Virtual events on mobile
If you’re planning on building for mobile but want to use React Native, don’t worry – we have you covered with react-native-daily-js.
We hope this overview helps get you started with how to approach building your own live video virtual event app built with Daily. We have some new content coming up related to virtual events, so keep an eye out on our Twitter to stay up-to-date with all things Daily.
As always, if you have any questions, please reach out – we’re happy to help!