Your personal guide to Jitsi Meet

Jitsi Meet - secured, flexible, and fully featured video conferencing

Features:

  • End-to-end-encryption (e2ee)
  • Blur background (beta testing)
  • Ability to share system audio together with the screen
  • Auto-view the active speaker or click on any attendee to see their
    video
  • Ephemeral meeting rooms
  • Text chatting (web only)
  • Lock a room with a password
  • Screen sharing
  • Streaming a conference to YouTube live
  • Shared text document based on Etherpad
  • Raise/Lower your hand for attention
  • Random meeting name generator
  • Participant talk-time statistics
  • Push-to-talk mode
  • Play a YouTube video to all attendees call
  • Audio-only option
  • Record and save meetings
  • Set a meeting password
  • Telephone dial-in to a conference
  • Dial-out to a telephone participant
  • Integration in other apps/websites

Tools and Technologies:

1. Jitsi Meet
    Secure, simple and scalable video conferences that can
be used as a standalone app or embedded in web application. It is an open-source
(apache) WebRTC javascript application that uses jitsi videobridge to provide
high quality, secure and scalable video conferences.

2. Jibri (Jitsi BRoadcasting Infrastructre)
    A broadcaster and recorder used for saving video call
recordings and streaming to YouTube Live. It works by launching a chrome
instance rendered in a virtual framebuffer and capturing and encoding the output
with ffmpeg. It is intended to be run on a separate machine (or a VM) to which
jitsi-meet is running, with no other applications using the display or audio
devices. Only one recording at a time is supported on a single jibri. What this
means is, suppose if you have meetings going on in 10 rooms concurrently, then
you will only be able to record one room with a single jibri. To record another
room, you will need another jibri.

3. Jitsi Videobridge (JVB)
    The media server engine (aka Selective Forwarding Unit
(SFU)) that powers all of jitsi’s multi-party video conferences. It is an XMPP
server component that allows for multiuser video communication. Unlike the
expensive dedicated hardware videobridges, jitsi videobridge does not mix the
video channels into a composite video stream, but only relays the received video
channels to all call participants. Therefore, while it does need to run on a
server with good network bandwidth, CPU horsepower is not that critical for
performance.

4. Jicofo (JItsi COnference FOcus)
    It is a server side focus component used in jitsi meet
conferences. Conference focus is mandatory component of jitsi meet conferencing
system next to the videobridge. It is responsible for managing media sessions
between each of the participants and the videobridge. Whenever new conference is
about to start an IQ is sent to the component to allocate new focus instance.
After that special focus participant joins Multi User Chat (MUC) room. It will
be creating single session between Jitsi videobridge and the participant.
Although the session in terms of XMPP is between focus user and participant the
media will flow between participant and the videobridge.

5. Jigasi (JItsi GAteway to SIP)
    It is a server-side application that links allows
regular SIP clients to join jitsi meet conferences hosted by jitsi videobridge.

6. Webserver - Apache / Nginx
    A server needs to be configured that can be nginx or
apache, solely depends on your choice. While installing, Lucy Meet will first
look if there is an nginx server, if it founds it then it will configure the
same. If nginx server is not present then it will look for apache server, and
configure it. And if none of the server is present, then it will configure it
jitsi-meet’s server jetty.

6. ALSA and Loopback Module
    The ALSA Loopback (or ALSA Loopback sound card) is a
virtual soundcard that is created once the ALSA kernel module snd-aloop is
loaded. This virtual soundcard device, as its name indicates, sends back the
output signal of applications using it back to itself, so one has a chance to
e.g. record this signal from the same device. And to use ALSA loopback module,
you need to make sure you have an audio device (soundcard) configured in jibri
server.

8. FFmpeg with X11 capture support
    FFmpeg is a collection of libraries and tools to process
multimedia content such as audio, video, subtitles and related metadata. Jibri
requires a relatively modern FFmpeg install with X11 capture compiled in to
process the video in real-time. This comes by default in Ubuntu 16.04, by
installing the FFmpeg package.

9. Google Chrome stable and Chromedriver
    As jibri works by launching a chrome instance rendered
in a virtual framebuffer, so it requires the stable version of google chrome
installed in the jibri server.


Configuration Recommended:

It is based on following three scenarios:

  1. When you want video conferencing without recording feature:
    In that case you will just need to setup a jitsi meet server, and no jibri
    server. Jitsi meet server can work even with 1GB of memory and one CPU core.
  2. When you want video conferencing with recording feature, with just one server:
    In that case you will need to setup both jitsi meet, and jibri on the same
    server. You will need a server with atleast 8GB of memory with atleast four CPU
    cores avaialble.
  3. When you want video conferencing with recording feature, with two servers:
    In that case, you will need to setup a jitsi meet server for video conferencing,
    and a jibri server for recording. As said, jitsi meet server can work with 1GB
    of memory with one CPU core, but for jibri, you will need atleast 8GB of memory
    with atleast four CPU cores availabe.

Note:

  • This is the minimum configuration recommended when dealing with just one
    or two rooms. If you need more than that, you will definitely need to scale up
    your servers as your needs scale.*
  • Though you can setup both jitsi meet and jibri on the same server, I
    personally recommend using two differnet servers. As it will become much easier
    to scale jibri in such instance.

Frequently Asked Questions (FAQs):

Q.1 What is end-to-end-encryption (e2ee) and how it can benefit?
Ans. Let’s understand with the help of an example -
Say if Dhruv wants to joins the video call and you have end-to-end-encryption
enabled. If Dhruv was a rogue service provider running the bridge for the
meeting, he would no longer be able to eavesdrop on it and an attempt to do so
would only yield: an endless stream of rubbish.
The only way for Dhruv to actually participate in the meeting would be if he
was made privy to the e2ee key. If he was, then things get back to normal.
This way even if an intruder attempts to join the video call, he won’t be able
to eavesdrop on it. It is in beta testing mode; we can use it by choosing the
end-to-end-encryption option by clicking on three dots. It is going to launch
very soon.

Q.2 Why just etherpad?
Ans. Etherpad is an excellent online real time editor where all the edits
made to the document will be visible to everyone in real-time.

Q.3 What is IQ that is related to JVB?
Ans. IQ is nothing but just a type of tag similarly to other HTML tags.
For e.g., when “Mute everone” or “Mute” button is clicked, the lib-jitsi-meet
sends the payload as shown below in the network request as seen in the chrome
developer tools network tab (notice the / tag here):
<body rid="190487810" sid="f6be6cfa-1b85-4d60-bff9-c13a6c974d3b" xmlns="http:// jabber.org/protocol/httpbind"><iq id="6f3dccfb-8a57-4b61-bc24-fd4a80f1b110:sendI Q" to="5369559@conference.jitsimeetvm/focus" type="set" xmlns="jabber:client"><m uteb jid="5369559@conference.jitsimeetvm/aa007f1f" xmlns="http:// jitsi.org/jitmet/audio">true</muteb></iq></body>

Q.4 How can I find if I have an audio device installed in my server?
Ans. Type lspci | grep -i audio in the terminal. If nothing shows up, it
means you have no audio device in your server, else you will see an audio device
there.

Q.5 Can I configure both jitsi meet and jibri on the same server?
Ans. Yes, you can configure both jitsi meet and jibri on the same server.
But you a good machine to do so with alteast 8GB of memory and atleast 4 CPU
cores available.

Q.6 Why it is recommended to set up jibri on another server?
Ans. Jibri needs to process the video in real time, so it will make use of
buffer which may slow down the recording, and you may not be able to record the
video as soon as it is happening, and ultimately end up with no memory. To
prevent such cases, it is always recommended to setup jibri on different server
than jitsi meet.

Q.7 What if I don’t use google chrome for setting up jibri?
Ans. In that case you won’t be able to record your meetings.

Q.8 What is SIP?
Ans. Session Initiated Protocol (SIP) is used for signaling and controlling
multimedia communication sessions in applications of Internet telephony for
voice and video calls, in private IP telephone systems, in instant messaging
over Internet Protocol (IP) networks as well as mobile phone calling over LTE
(VoLTE).

From past five days, I’ve been searching a lot to do things like, building and installing jitsi-meet from sources, changing the source code and tweaking them in my own way. This community helped me a lot. So, this is my little effort to contribute to this community in my own way. Thank you @damencho @corby for all your efforts that you are giving to this open world.

2 Likes