WebRTC is an open-source framework that enables real-time communications for the web through your web browser.
In contrast, it is the basic protocol that allows web apps and websites to capture and stream videos and audio and exchange data between web browsers.
WebRTC is created first by Google to make peer-to-peer communication possible for web browsers and mobile apps, leading to dozens of video and audio communication apps that we use every day.
It is a free and open-source project, which means it does not require any cost to run and use it
Another Advantage for WebRTC is it is fast, and because, unlike UDP-based apps, it does not require any handshake between the client and the server.
Some may consider WebRTC standard not safe or secure because it exposes the real public IP of the user, therefore if you are using WebRTC with Google Chrome or Mozilla Firefox you are not anonymous.
In this article, you will find the best free, open-source WebRTC libraries and frameworks to build WebRTC-based projects.
Kurento is a free, open-source WebRTC media server with a rich API set for building rich video applications for web, and mobile.
Kurento is written with C/C++ and uses several GStreamer functions. It is started as a project at Rey Juan Carlos University in Madrid in 2010 then released as an open-source project.
- Networked streaming protocols, including HTTP, RTP, and WebRTC.
- Group communications (MCUs and SFUs functionality) support both media mixing and media routing/dispatching.
- Generic support for the computational vision and augmented reality filters.
- Media storage supporting writing operations for WebM and MP4 and playing in all formats supported by GStreamer.
- Automatic media transcoding between any of the codecs supported by GStreamer including VP8, H.264, H.263, AMR, OPUS, Speex, G.711, etc.
Kurento is licensed under Apache 2.0 open-source license.
2- Ant Media Server
Ant Media Server is a media server for building real-time video and audio communication tools with low latency streaming.
In addition to its support to WebRTC, Ant Media also supports many protocols like CMAF, HLS, RTMP, RCSP, and many others.
Ant Media Server is highly scalable, with 0.5 latency, and can be installed on-premise or on-cloud.
Ant Media comes with two editions, an enterprise edition with a commercial license, and a free, open-source community edition.
Features for Ant Media Server (Community Edition)
- Ultra-Low Latency Adaptive One to Many WebRTC Live Streaming in Enterprise Edition
- Adaptive Bitrate for Live Streams (WebRTC, MP4, HLS) in Enterprise Edition
- VP8 & H264 Support in WebRTC Enterprise Edition
- Data Channel Support in WebRTC Enterprise Edition
- Horizontal(Clustering) and Vertical Scaling Enterprise Edition
- SFU in One to Many WebRTC Streams in Enterprise Edition
- Live Stream Publishing from RTMP to WebRTC Enterprise Edition
- RTMP Ingesting
- WebRTC to RTMP Adapter
- IP Camera Support
- Recording Live Streams (MP4 and HLS)
- Restream to Social Media Simultaneously(Facebook and YouTube in Enterprise Edition)
- One-Time Token Control in Enterprise Edition
- Object Detection in Enterprise Edition
Open-EasyRTC is a free, open-source WebRTC toolkit for building real-time media-rich web and mobile apps.
Open-EasyRTC offers developer-friendly documentation, with several code samples and demos to help developers create usable apps in no time.
openVidu is an open-source (Apache License v2), development platform for building video conference and video calling applications.
If you like building your apps with REST-API, then you are lucky as openVidu got you covered with a developer-friendly REST-API.
Here are its current features:
- redistribution of arbitrary numbers of audio and video streams;
- text chat;
- recording to disk;
- user statuses ("raise hand", etc.; not yet used by the default client);
- choice of audio and video codecs (full functionality for VP8, VP9, and H.264, preliminary support for AV1);
- Scalable Video Coding (SVC) for VP8 and VP9;
- NACK-based loss recovery, in both the client-server and server → client directions;
- PLI-based repair;
- automatic restarting of failed flows (on ICE failure);
- congestion control in the server → client direction (both loss-based and using REMB indications);
- congestion control in the client → server direction (loss-based, partial REMB support);
- dynamic tuning of buffer sizes depending on the clients' RTT;
- hashed passwords;
- built-in TURN server.
SaltyRTC is an end-to-end encryption protocol for building encrypted WebRTC or ORTC peer-to-peer communication apps.
The project offers a long list of implementation samples and demos which help to put developers on the right track to build their encrypted WebRTC tools.
Janus is a general-purpose WebRTC server for building WebRTC-based apps like video calling, conferencing, and group video chats solutions.
Janus has a small footprint with low latency and comes with many code samples and demos with developer-friendly documentation that help developers install, implement and run apps in no time.
Janus is released under GNU General Public License Version 3 (GPLv3).
8- ion media server
ION is an open-source distributed real-time communication system built in pure Go programming language. It uses PION/ Flutter-WebRTC library.
The project is released and licensed under MIT License.
MediaSoup is a rich toolkit for building WebRTC video conferencing apps with its open-source supported Node.js and Rust servers.
It can be used to create group video chat apps or one-to-many conferencing apps with full RTP streaming support.
MediaSoup comes with low-latency support, and Rust/ Node.JS servers. It supports data message exchange (via WebRTC DataChannels, SCTP over plain UDP, and direct termination in Node.js/Rust). It also offers built-in Simulcast and SVC support.
- ECMAScript 6/Idiomatic Rust low-level API.
- Multi-stream: multiple audio/video streams over a single ICE + DTLS transport.
- IPv6 ready.
- ICE / DTLS / RTP / RTCP over UDP and TCP.
- Simulcast and SVC support.
- Congestion control.
- Sender and receiver bandwidth estimation with spatial/temporal layers distribution algorithm.
- Data message exchange (via WebRTC DataChannels, SCTP over plain UDP, and direct termination in Node.js/Rust).
- Extremely powerful (media worker thread/subprocess coded in C++ on top of libuv).
Here is a sample project that uses MediaSoup.
OvenMediaEngine is an open-source streaming server with a low-latency rate for building real-time communication solutions.
OvenMediaEngine supports many communication inputs/ outputs protocols and comes with media encoders which makes it ideal for building enterprise video/ audio conferences and calls.
The supported protocols include WebRTC, RTMP, SRT, RTSP, and TS.
OpenMediaEngine comes with a built-in embedded live Transcoder that supports VP8, H264, Opus, AAC, and Pass-Through.
Temasys project offers various WebRTC-based tools for building video conferencing and calling apps for the enterprise using the SkylinkJS Library.
The repo collection contains several demos and sample code that uses several technologies like Swift, Objective-C, React, C++, Java, and Android.
If you are planning or building WebRTC-based apps, then Temasys is a must-check project.
JSCommunicator is a WebRTC tool that uses SIP protocol over WebSockets.
The project works seamlessly with web apps and can be embedded with any CMS like WordPress and Drupal.
You can obtain the source code and run it, or customize it for personal and commercial use.
13- PeerJS Server and Library
Both PeerJS client and server are free and open-source for anyone to download, install, run and build video/ audio apps.
To sum up
WebRTC or Web Real-Time Communication is the primary cornerstone of what powers most video conferencing and video calling apps.
Here, we listed the best open-source WebRTC projects for developers to create cool video conferencing tools and apps. If you know of any open-source WebRTC library or project that we did not mention here, let us know.