Demystifying JITSI
What is Jitsi ?
Jitsi is an open source communicator that allows secure audio/video calls and conference. It includes Jitsi Video-bridge which relays video rather than mixing. It also provides improved scale with higher quality and lower latency in media transfer.
Terminology :
WebRTC:
WebRTC provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs.
Major components of WebRTC are:
getUserMedia
– Allows a web browser to access the camera and microphone and to capture media.RTCPeerConnection
– Sets up audio/video calls.RTCDataChannel
– Allows browsers to share data via peer-to-peer (P2P).
XMPP :
It is a communications protocol for message-oriented middleware based on XML. XMPP provides a general framework for messaging across a network. It is pretty much the same piece of technology as the one Google uses for Hangouts.
Colibri (Conferences with Lightweight Bridging) protocol:
It is a protocol which helps in outsourcing the responsibility of relaying the media. The goal is to make use of remote server as if it was available locally.
How Jitsi works ?
Source: Rendez-vous Web(RTC) Conferencing as a Service Author: Franck Rupin
Overview :
Access Layer : Web browser, which has a Jitsi Meet application executing in it.
Application Layer : Jicofo, which provides basic signalling service, load balancing etc.
Media Layer : Jitsi Video-bridge, which relays the video streams and is a selective forwarding unit (SFU).
Main components are:
Jitsi Meet
This component provides the JavaScript application embedded with WebRTC capabilities. It’s responsibilities are:
1. Making a layer for XMPP signaling.
2. Initiating connection with the peer.
3. Accepting media/ messages and files.
Once the application starts executing and the signaling is handled, user is able to communicate via Jicofo as it is responsible for signaling and relaying of the video-bridge.
Jitsi meet is built over Lib-Jitsi which gives a full-fledged access to numerous other APIs that can give user more control over a video conference.
JICOFO : Jitsi Conference Focus
What is a conference focus?
An agent responsible for making sure that media sent from one participant is distributed to all other participants in a conference, so that everyone could effectively hear or see everyone else. It is the main coordinating entity which manages all the ongoing conferences. When a conference is initiated, a room is made and anybody knowing the name of the room can enter the room.
Jicofo currently has following responsibilities:
1. Managing conferences : who joins the room, who is leaving the room.
2. Managing Colibri channels for participants and establishing media flow to-fro JVB.
3. Jitsi Video Bridge load balancing based on conference count.
4. Handling client authentication (optional).
5.Taking part in implementation of some features like audio muting, recording etc. Jicofo is the central signaling component in the system.
JVB : Jitsi Video Bridge
Jitsi Video-bridge acts as a media server in the Jitsi infrastructure. This is the core of the system. It uses SFU(Selective Forwarding Units) as a media distribution method. In this, end-points i.e the participants send their streams to the central point(video-bridge server) and the video-bridge relays the video stream to other participants in the conference. It does relaying rather than mixing the video streams.
Benefit of relaying over mixing:
Video content mixing/ MCU(Multi-point control unit) : In this the video streams received are first decoded, composed into a mix and then encoded again. This not only reduces the quality of the video due to lossy encoding but also increases the processing load on the media mixer exponentially.
Video content relaying/SFU(Selective Forwarding Unit) : In this the video streams received by the media mixer are relayed to the participants of the conference.
Source: https://developer.atlassian.com/blog/2015/07/video-conferencing/mcu-sfu.png
Why Jitsi over other video conference solutions ?
USPs of Jitsi :
1. Open Source : Tweaks can be done according to the user requirement.
2. High Quality multi-party video conference.
3. Secure : Provides encryption of the data being exchanged.
4. Use of Video-bridge : It is a star feature of Jitsi, which relays the content rather than mixing it. Relaying of the video saves the processing load at the video-bridge’s end.
See you @ Jitsi!!
Nice write-up.