As a video conferencing application development company, we often get requests to help our clients choose the right video conferencing open-source stack as a base to develop custom video conferencing applications according to a client's business use case. This post will discuss the 3 most popular video conferencing projects based on mediasoup media-server and how/when to use them. We have tried to use as many details about each project along with its usability for a certain type of business use case.
The mediasoup open-source projects
Mediasoup-demo
As the name suggests, the project was developed by the original author of mediasoup to demonstrate the capabilities of mediasoup to the world. It can be considered as a complete implementation that has the code examples for things like producers, consumers, force tcp, forceVP9/H264, and Simulcast/SVC to showcase what mediasoup is capable of. It uses a protoo server/client as a signaling mechanism over WebSockets designed by the author of mediasoup himself.
Author: IBC(Original Author of Mediasoup)
Tech stack: Mediasoup, Nodejs, Reactjs, and WebSocket
Below are some interesting facts about this project. The below statistics are taken from GitHub as of the date of publication of this blog.
Opensource
905 stars
555 forks
54 watchers
MIT License
No Horizontal scaling
No Vertical scaling
One room in one media server only
Community support
The usefulness of the project
It can be considered a foundation for building a robust production-grade video application as it has all the components and code needed for building such an application. The developer/development team can make use of the existing code whenever needed to achieve the business use case. Though it can be used for any kind of business use case, it is advisable to spend some time understanding the code and the design process to make the best use of it.
Our take on this project
Choose this only if you have at least 1-2 months of extra time to play around with this application and build the necessary expertise before venturing out to build a production-grade application for yourself / your company. Also, it is advisable to understand the signaling framework protoo as used by this application if you wish to use that as a signaling mechanism. alternatively, you can use socket.io if your use case doesn't need to have more than ~200 users in 1 room.
Edumeet
This project has been developed as a fork of the original project mediasoup demo. It is more mature and production-ready than the demo project. This has primarily been designed for educational purposes like running virtual classrooms / online teaching learning though it can be retrofitted to other use cases with minimal effort. This package is highly configurable and can be configured using config files provided by the authors without the need for many code changes for utilizing its provided functionalities. The backend of this application is ready to use without the need for any kind of code changes. The front end obviously needs modification to suit your business use case.
Author: Multiple authors
Tech stack: Mediasoup, Nodejs, Reactjs, and Socket-io
Below are some interesting facts about this project. The below statistics are taken from GitHub as of the date of publication of this blog.
Opensource
1.1k stars
397 forks
52 watchers
MIT License
No Horizontal scaling
Yes Vertical scaling
One room in one media server only
Community support
The usefulness of the project
It can be considered as a project with a ready backend for production usage along with a sample frontend which needs to be modified according to the business use case. The good part is that no coding experience is needed for the backend part as it can be fully configured by using the config files already provided in the project.
Our take on this project
Choose this if you have less amount of time and developers are not very skilled with mediasoup/ WebRTC knowledge. The front end of this application can be modified by an average Web developer with a little curiosity and a keen eye. It is a good open-source package for anybody who wants to build a production-ready video application without much expertise in building WebRTC backends.
Nettu-meet
This project can be considered as a ready-to-use self-hosted application for a virtual classroom / online teaching learning use case. The title of this project itself is "Opensource video conferencing application for tutors".This project has a nice ready-to-use frontend as well as a ready-to-use backend. The UI looks polished and has all the necessary ingredients for an online education use case.
Author: Fredrik Meringdal
Tech stack: Mediasoup, Nodejs, Reactjs, and Socket-io
Below are some interesting facts about this project. The below statistics are taken from GitHub as of the date of publication of this blog.
Opensource
1.9k stars
196 forks
43 watchers
AGPL3 License
No Horizontal scaling
No Vertical scaling
One room in one media server only
Community support
The usefulness of the project
If your use case is an online education, feel free to use this project as it is. It has all the necessary things already built in the front-end like a whiteboard, file sharing, chat, etc. It may not be very suitable for any other use case as the front end need to be redesigned and redeveloped for anything other than online education. Telehealth can still re-use this front-end but with some modifications.
Our take on this project
Choose this if your use case is a self-hosted online education solution and you don't need anything extra that has not been provided already. You will be ready with your own online education solution within a week's time using this open-source package.
Meetnow (Commercial)
This project has been developed from scratch using mediasoup as a media server. It has been created with a dynamic hybrid load balancing approach to provide versatility to the usability while keeping the servers usage and data transfer cost to the possible lowest. the load balancer is versatile enough to create media servers on demand spike on its own and shut them down when the demands lessen. It comes with a nice pre-built UI with all the latest features including, stage mode for virtual events, break-out rooms for focussed discussions, virtual backgrounds, public/private chat, moderator controls etc. A load-balanced server-side recording option is also available to record meetings effortlessly.
Author: Centedge Technologies
Tech stack: Mediasoup, Nodejs, Reactjs, and WebSocket
Below are some interesting facts about this project. The below statistics are taken from GitHub as of the date of publication of this blog.
Commercial
Yes Hybrid scaling
Yes Horizontal scaling
Yes Vertical scaling
One room can be in multiple media servers
On-demand Paid Support
The usefulness of the project
This is useful for all kinds of use cases where load balancing is necessary to cater to a large concurrent user base. This service can be used by 10k / 100k users concurrently without much issue as the load balancer does all the heavy lifting of server creation/destruction and efficient resource allocation. The UI is ready for the majority of the use cases of video conferencing / Interactive live streaming.
Our take on this project
This is our own in-house product developed from scratch with 8+ years of working experience with WebRTC and the ecosystem. If you think your use case needs scaling and load balancing to cater to a large user base then this may be a good fit for you Or if you need consistent support from the team which has originally developed it, for further enhancements, then this is for you.
Feel free to set up a free 30mins discussion with us using this link to discuss your business use case and find a suitable open-source package either from this list or outside of this list. We can help you do the requirement analysis, find a suitable open-source repository that is close to your requirement and create a list of action points that can help you build a production-ready video application, all within a budget of < $1000. Drop us a mail with your requirements at hello@centedge.io to begin.
留言