
Jitsi Architecture – legacy desktop application (2011) - davidjnelson
https://www.aosabook.org/en/jitsi.html
======
saghul
Note that this article is about the legacy Jitsi desktop application, and NOT
about Jitsi Meet, the WebRTC compatible video conferencing project. Source:
I'm a Jitsi dev.

~~~
ssivark
Thanks for this _very important_ clarification (ideally, the title should be
fixed with this clarification, since most people would be interested in the
Jitsi available today).

Is the architecture of the the WebRTC-based solution explained somewhere? In
particular, I'm seeking an overview of when it's p2p (how does it scale to
large meetings), when it uses a central server, when call quality can degrade
(eg: will one low-bandwidth user or an overloaded server wreck the call for
everyone), and which links are encrypted. I'd like a reasonable understanding
of these aspects before I recommend Jitsi to less tech-savvy friends and
family.

~~~
lioeters
Not sure if this answers your specific questions - but I found an article
written by a dev from Jitsi, describing the architecture of Jitsi Meet:

Improving Scale and Media Quality with Cascading SFUs

[https://webrtchacks.com/sfu-cascading/](https://webrtchacks.com/sfu-
cascading/) (November 2018)

Edit: Based on another Jitsi dev's comment in this thread: SFU stands for
"Selective Forwarding Unit", which was extracted to a standalone project,
Jisti Videobridge.

------
leonroy
Here's the Jitsi architecture:
[https://i.imgur.com/oDSRzF4.png](https://i.imgur.com/oDSRzF4.png)

Screen grabbed from their excellent tutorial videos:
[https://jitsi.org/news/tag/tutorial/](https://jitsi.org/news/tag/tutorial/)

One thing we’ve found in deploying Jitsi several times is that good
performance is difficult to achieve across parties who are across the globe.

We have some of our team in Armenia, Belarus and London and not all of then
get consistent performance.

I know you can do geographic sharding so all EU or US guests get connected to
their closest server but is there a way to ensure cross country participants
_all_ get good performance?

~~~
supermatt
You can either:

\- have the SFU (videobridge) in a more "central" location

\- have multiple videobridge installations (cascaded bridges) where required
with a low latency interconnect (its effectively a smart relay).

\- you could use geographically distributed forced TURN servers with low
latency interconnect to the SFU, but it would be more bandwidth intensive, and
not really useful unless you truly have a REALLY low latency interconnect.

\----------

Reducing the quality of the streams may also help, if it is bandwidth that is
the constraining factor.

------
kolp
I've installed my own instance of Jitsi and it's particularly useful for video
chats with older people or those less technically able.

My use case is elderly in-laws who can use a laptop, but are incapable of
installing anything other than malware. Installing Zoom would be too
complicated for them and would probably discourage them from participating in
a family video chat.

With Jitsi, I send them a link by email and text them to check their email.
They click on the link, browser opens and voila! - they're able to chat with
their family, with zero fuss.

Costs me €2.49 per month for a Hetzner cloud instance.

~~~
notechback
Hi, this is really interesting for me. Could you share a bit more details of
your setup?

~~~
reitzensteinm
I am also doing this, so I'll take the liberty of answering. There's a turnkey
docker which should take a few minutes to install:

[https://github.com/jitsi/docker-jitsi-meet](https://github.com/jitsi/docker-
jitsi-meet)

Put nginx in front of it with Let's Encrypt and it shouldn't take more than
half an hour to set up. After that you basically get a clone of meet.jit.si.

I'm using it with the low level JS library in order to build a product that
contains video chat. There was a bit more messing about for me, but only a
bit.

~~~
olieidel
nginx and letsencrypt are already included in the docker image - just
uncomment the letsencrypt variables in the .env config file :) hope that saves
you some time.

~~~
reitzensteinm
Ah of course, I forgot that was included. I couldn't use that myself due to
CORS and a few other things but if you just want Jitsi in a box it would work
for sure.

------
teekert
I love Jitsi, before Covid19 I never used it, now I use it daily for calls
with family and yesterday I watched a video of our 4x4 trip with friends
together with them (5 guys), streaming it from YouTube into the group chat. It
worked very well.

~~~
Freak_NL
We tried Jitsi Meet as a back-up for Google Meet in our company for the daily
scrum, and it works great. The only nit-pick is the Firefox performance bug,
but it's not too demanding to use Chromium for now just for Jitsi Meet until
that bug gets fixed.

My colleagues loved the Youtube playback ability (I put on some elevator muzak
waiting for the rest to join), although I had to do a bit of hunting to get
rid of the video again. :)

~~~
stock_toaster
Seems chrome is the only supported browser[1]?

Doesn't this make jitsi meet _effectively_ chrome only until they better
support firefox/safari/etc[2].

[1]: I get "It looks like you're using a browser we don't fully support....We
recommend to try with the latest version of Chrome or Chromium" when trying to
use it.

[2]: Sounds like webrtc isn't well supported and fairly buggy for some
browsers, apparently?

~~~
jboynyc
I use it in Firefox all the time with no difficulties. The only thing that
doesn't work for me is selecting an external (USB PnP) microphone, but
apparently that's due to a longstanding bug in Firefox that Jitsi is doing its
best to work around.

------
bronco21016
I spent a ton of time looking at Jitsi yesterday because I’m getting fed up
with FaceTime. I really want a living room solution on my large flatscreen
because we’ve been spending loads of time doing extended video chats (30+
minutes) with family members. Stuff like family trivia night, etc. The
iPhone/iPad screens are too small and really its a pain to hold it in place.
I’ve been using a tripod to help some with the holding but the fixed lens is
really limiting without an extended HDMI cord. I’ve been connecting to the TV
via HDMI but the sound/input is still via the device and the iPhone refuses to
do landscape mode. Overall, it’s just suboptimal.

Jitsi is open source, has an option for me to host my own server (avid self-
hoster for privacy), and appears to work on just about any platform. So I
should be able to get most of the family to adopt it.

So now I suppose my question is how do I get Jitsi running on my TV? Or can
someone offer some other solution that might fit my use case? I really would
like to be able to just go to my TV, turn it on, and have instant ability to
video chat from my living room to family members on nearly any device.

My first thought was to get it running on an Raspberry Pi but it seems that’s
not really something that works from all of my searching. Does anyone have any
experience there?

If that’s the case is there a cheap Android device that could achieve this
with some sort of decent camera? Or am I stuck running an x86 system attached
to my TV?

Does anyone else have Jitsi setup in a conference room like setting with a TV?

~~~
choward
> Or am I stuck running an x86 system attached to my TV?

I'm curious why you're opposed to this.

~~~
bronco21016
Primarily price and power consumption. Having the ability to run something
like this on a cheap ARM single board computer would be significantly cheaper.
Plus, I have a stack of Raspberry Pis in my office. Who knows how long it
would take to order and receive a small form factor x86 system right now.

------
dmix
I noticed Jitsi was purchased by 8x8 in 2018, I'm curious how they're video
conferencing software differs from
[https://meet.jit.si/](https://meet.jit.si/)

[https://www.8x8.com/products/video-
conferencing](https://www.8x8.com/products/video-conferencing)

It looks pretty similar from the description and screenshots. But with more of
an enterprisey-focus and integration with their existing software.

------
k__
Is Jitsi the OSS Zoom killer?

I saw many tweets about it today...

Edit: Seems like Jitsi Meet is the current contender.

~~~
mhugo
Please someone correct me, but my understanding is that Jitsi meet has a very
different architecture compared to Zoom.

Jitsi Meet uses a "SFU" which means the A/V stream of each participant is sent
to all the others. That basically does not scale in terms of network
bandwidth.

Zoom seems to use a central server that kind of "mix" streams and send them to
all participants. Or something hybrid.

Jitsi could be able to connect to an "MCU" like OpenMCU for this kind of
architecture, but I have no clue if it is easy or not to deploy.

I am working in a full-remote company with ~15 people. Jitsi is ok for
meetings with 2-4 people. With more people, it just does not work reliably.
Zoom does.

~~~
janinge
Zoom also use the Selective Forwarding Unit (SFU) architecture. Or a central
server that kind of "mix" streams and send them to all participants, if you
will.

Jitsi Videobridge does this by receiving simulcast streams from each
participant. This server individually picks out streams and qualities that
will fit in each recipient's downstream pipe based on measured bandwidth and
configured priorities (e.g. you could choose to give more bandwidth to those
who are actively speaking, or shut down all but the last N speakers video
streams).

Yes, the available network bandwith on a Jitsi Videobridge could be a
bottleneck. Each meeting need to fit on a single bridge instance. However,
using common servers connected at 1 Gbps or 10 Gbps, it shouldn't be any
problem to have meetings with substantially more than 2-4 people. Say a HD
stream from most webcameras outputs 3 Mbps at full blast, with 50% overhead
due to the simulcasting. That's over 2000 participants on a single server
connected at 10 Gbps, all receiving all video streams in full quality.

For meetings with 2 participants the streams run peer to peer, so here you get
the best possible latency and quality.

We've set up Jitsi on a VPS instance at a nearby provider, and have not seen
any problems with meetings of 10-15 people. Stability and performance also
outperforms all the other solutions I've tried. There's currently a bug in
Firefox's simulcast implementation, so if you have any participant using this
browser, this feature gets disabled for everyone. Even with this issue, I
haven't noticed anything but excellent performance with this few number of
participants.

The following article might also be interesting.

[https://bloggeek.me/webrtc-vs-zoom-video-
quality/](https://bloggeek.me/webrtc-vs-zoom-video-quality/)

------
amrx101
I have yet to figure out how to

1\. how to share screen?

2\. How to schedule meet for future?

Maybe I am dumb. I will meanwhile stick to Zoom.

~~~
distances
What do you mean with the schedule point? You tell everyone when to join, they
join, meeting starts. The rooms exists when someone is in there, you don't
need to open them at a certain time.

~~~
vetinari
Also, there's a thing called "calendar". One can send invitation for a
specific time (via another cutting edge tech, "email"), and include an URL to
the meeting.

Some people even like the fact, that they have their scheduling info in the
same place!

Isn't the technology wonderful? /s

------
avmich
Outstandingly, by modern standards, clean HTML page, markup-wise.

Great content, too.

------
dvduval
What about the cost in terms of per per person per hour?

