A new era for OpenVidu: better perfomance and media quality with mediasoup

  • The OpenVidu Server is the brain of OpenVidu. It handles the signaling plane of the platform, providing the necessary logic to coordinate all of the clients and the different submodules of the system.
  • The Media Server is the heart of OpenVidu. It handles the media plane of the platform, sending and receiving audio and video streams from the clients.

Why mediasoup?

Since OpenVidu’s inception, Kurento has been the media server at the core of the platform. OpenVidu team is the same team that created Kurento almost a decade ago, and still mantains it. And it has been a great ride! Kurento was created as a generic and versatile server, intended to provide full access to media streams for low-level processing. It is very powerful and allows the devolopment of quite advanced use cases. For example, it is one of the few available Media Servers that natively supports audio and video filters in real time, with no additional components needed. And it also makes a straightforward process the integration of IP cameras, with its RTSP and transcoding capabilites.

Media quality improvements

Real-time media over the Internet has been evolving and improving over the last few years with the addition of new codecs and new strategies built on top of WebRTC. mediasoup has always been kept up to date with these improvements. OpenVidu may greatly benefit from them, among which the following stand out:

  • Simulcast: publishers may send different encodings of the same video stream, each one with a different quality, so that each subscriber can receive the one that best suits their network speed. This can substantially improve the experience for all participants in the videoconference: each participant receives the video that best suits their network conditions without affecting the experience of other users.
  • VP9: this is a more advanced video codec than the widely extended VP8 and H264. It provides better compression rate and better quality with lower bandwidth usage, at the expense of a higher CPU usage on the client side. It also supports SVC. Google Chrome has had it for a while now, and other browsers are getting onboard.

6x more media streams

We have seen in our first comparative studies that the performance has been increased 6 times. This means that mediasoup is capable of handling up to 6 times more media streams than Kurento, using the same hardware.

Maximum number of 1-to-1 video sessions, with their corresponding number of participants and video streams, using Kurento and mediasoup in the same 4 CPUs — 8GB server
Maximum number of 4-to-4 video sessions, with their corresponding number of participants and video streams, using Kurento and mediasoup in the same 4 CPUs — 8GB server

5x quicker connections

Media connections are established 80% quicker in mediasoup than Kurento. This means that with Kurento the average time between a customer calling the subscription operation and the video being actually played on their device, it could average around 1.25 seconds. With mediasoup it averages 0.25 seconds.

Connection establishment time in OpenVidu, Kurento VS mediasoup

100% compatible with your current OpenVidu applications

Changing such a central component as the media server usually involves a lot of refactoring work at the application level. New SDKs must be used, basic architectural concepts may radically change, etc… But OpenVidu hides all of this complexity. There’s no need to change a single line of your app. What used to work with Kurento will now work with mediaosup.

We are mediasoup collaborators

We believe in open source software. mediasoup is a great open source product with a great active community. And OpenVidu is part of that community. We have collaborated in the past with mediasoup creators in several projects, and plan to continue to do so on a recurring basis in the future. A couple examples of mediasoup projects in which OpenVidu team has been involved are the following:

Select the best media server for your use case

After presenting the strengths of mediasoup, you may be wondering if this means that Kurento is no longer valid for any use case. Well, it doesn’t have to: if you need advanced processing of media streams such as real time audio or video filters or the usage of IP cameras, then you will need Kurento’s powerhouse. But for videoconferencing software, mediasoup will provide overall better quality and perfomance.

Try the beta support of mediasoup in OpenVidu

To make sure everything works as expected, we need your help. Even though we have been through one of the most intense testing periods OpenVidu has ever known, we still have to ensure that mediasoup works fine in real environments. Therefore, mediasoup support will be in beta for a while.

Beta limitations

As a beta feature, mediasoup support in OpenVidu comes with a handful of limitations that will be solved in the near future, when it finally reaches the General Availability stage. These are:

  • There is no INDIVIDUAL recording.
  • There is no support for the forced media codec feature.
  • Be aware. As a beta, there may be bugs that affect the expected general behavior.

New OpenVidu Enterprise edition

A new whole set of advanced features are coming to OpenVidu. mediasoup is just the beginning. New exciting scalability, fault tolerance and security features are in development right now, and our intention is to offer them as part of a new OpenVidu edition: OpenVidu Enterprise, that will be joining OpenVidu CE and OpenVidu Pro.

What’s next regarding mediasoup

We honestly believe that OpenVidu will improve dramatically with mediasoup support. Lots of use cases may benefit from its unique features and improve the user experience tremendously without even having to modify the source code. We are working hard to overcome the above-mentioned limitations and release a final version of mediasoup support. We cannot wait to hear your first impressions of this exciting new chapter for OpenVidu!

This may have crossed your mind, but we will always give Kurento some love whenever it needs it

Stay tuned for next iterations! You can follow us on Twitter and a Star in GitHub is always welcome :)

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
OpenVidu

OpenVidu

Easy videoconference in your web or mobile app