We are developing project where we are currently using one KMS and test it regularly with 20-35 watchers, and have stress tested it with as many as 60 watchers. We came to OpenVidu believing that OpenVidu would provide us with the capability to scale up to potentially 300-500 watchers at one time by using multiple KMServers linked together to handle the increased load.
However, we cannot find any information on how to do this and the only information we did find was this link ‘Current limitations of OpenVidu Pro scalability’ >> https://docs.openvidu.io/en/2.14.0/openvidu-pro/scalability/#current-limitations-of-openvidu-pro-scalability, which doesn’t really deal with my question.
Does OpenVidu help move us towards our goal of having 300-500 watchers on a presentation? (Not interacting other than through text, just watching) Or are we mistaken? And if this capability is not there now, is it planned for the future and when will it be ready? Can this be achieved through other means?
Grateful for any insights and info.
OpenVidu is not designed to handle 300-500 users in the same session. Nevertheless, with a powerful machine, it can work.
You have to take into account that WebRTC without simulcast can have problems with too much subscribers are connected to the same publisher if some of them have bad network conditions. First of all, all users will receive the same quality (the worst one). Second, if a user request a Key Frame (because packet loss), all other users will receive the same Key Frame.
There are some techniques to avoid the problems mentioned, but they are not yet included in OpenVidu (they are in the roadmap):
- simulcast: Sending different qualities to different viewers depending on network conditions.
- Chaining media servers: To handle more load than a computer can manage.
- Use several decoders-encoders in media server: to avoid the same Key Frame to be sent to all users.
Regards
What if we were to use KMS/OpenVidu as the core system to handle say on average 30, maximum 50, watchers using WebRTC, and if the watcher base goes beyond 50 watchers, then the system would automatically switch to delivering to additional watchers using Chunking rather than WebRTC. GoToWebinar is defintely using a variation of this approach (they of course don’t use WebRTC).
Fact is, for our audiences, which will be almost all passive watchers rather than interactive participants, a couple of seconds delay while we process into and serve up chunks, doesn’t really matter.
This would seem like a potential solution for handling large audiences.
What do you think about the potential of this approach? Is there any capability in OpenVidu to deliver such a solution, now or planned for future? And if so, could you direct me to any documentation, either OV or external docs.
Thanks in advance,