Hi! I’m new here. I’m a freelance developer, and I’ve recently taken on a project from a client to build a custom video conferencing platform. They expect about 16 simultaneous users at a time, all of whom would like to share audio and video. I’m currently in the investigative phase, looking at technologies for the project, and came across mediasoup. It looks great, but what are the performance considerations? Could mediasoup be used to develop a web app with this kind of usage? I’d like to know if anyone has successfully used it for such a purpose and how the performance turned out. If it is possible, what considerations need to be made about the server infrastructure?
Thank you. I’m excited about this project and the technologies involved but am new to WebRTC and video streaming.
hey @devthered mediasoup would definitely fit as solution to your project description.
They expect about 16 simultaneous users at a time, all of whom would like to share audio and video.
If they are the only users connected to the server at a particular time I don’t think you would have to apply any complex scalability strategy, the same used by mediasoup-demo should be enough for that.
Thanks, Oscar! Your reply is encouraging. In the future, the app may want to support multiple simultaneous rooms, each with ~20 users. What kind of scaling strategy could be applied to extend the app this way?
That completely depends on the machines you are using and how much they can handle, most of the time the network capabilities will probably be the limiting factors. Performance-wise I’d be more worried about the end user’s computers having to receive and decode 19 video streams and encode their own rather than if mediasoup is able to keep up. The easiest approach to scaling if the rooms are separate is probably having multiple mediasoup instances of which you can request how busy they currently are (e.g. number of connected participants per GET request). Then you can have a manager to assign an address that is currently the least busy. There are also possibilities to scale across different machines within the same room if even that isn’t enough, so scaling should not stop you.
Although it’s not encouraged it’s extremely easy to start using the mediasoup demo as a basis and extend it a bit with your needs. I honestly find the demo server stable enough to even use it in production with some modifications for your own needs.