|
|
Subscribe / Log in / New account

Video conferencing with Jitsi

By Jonathan Corbet
March 24, 2020
Spring is coming to the northern hemisphere, and one's thoughts naturally turn to ... being locked up inside the house and not allowed to go anywhere. That has, in turn, led to an increasing interest in alternative mechanisms for keeping up with family and coworkers, especially video conferencing. There are a number of proprietary video-conferencing services out there; your editor decided to look into what solutions exist in the free-software realm. It turns out that there are a few; the first to be looked at is Jitsi.

Jitsi is, in fact a collection of components, written mostly in Java (and JavaScript) and released under the Apache license. At the core is Jitsi Videobridge, which implements multi-participant video conferences, and Jitsi Meet, which implements the client side. Various other components live under the hood and are likely to only come to one's attention if something goes wrong with them. There is also a Jitsi Desktop application, but that has been superseded by the browser interface and is considered "legacy" at this point.

Getting it going

Brave folks can certainly install the whole thing from source; for the rest of us, pre-built packages are limited to the Debian and Ubuntu distributions. Your editor installed that version on a Debian 10 machine sitting out there in the cloud somewhere.

That installation did not go as easily as one might have liked. The (sparse) documentation suggests that the packages will perform the needed web-server setup, but a number of details were left as exercises for the reader. There is support for automating the setup of a Let's Encrypt certificate, but your editor did not try that. Once the server configuration was properly tweaked, it was possible to connect to the newly established bridge with an ordinary Firefox browser.

Running a single connection to a Jitsi server is a great way to admire one's own image on the screen, but it lacks something from the full conference experience. Unfortunately, when the second user connected, both users were immediately disconnected with a helpful "something went wrong" error, and an even more helpful "error 143" message on the server side. Some searching revealed this useful post stating that the Debian package installs the server in a misconfigured manner; once the suggested change was made, everything worked as expected.

The user experience

The Jitsi client runs fine in a standard web browser, with no need to install any plugins. In the default setup, a new user connecting to the server will see a screen inviting them to create a new meeting; typing any string into the field provided creates a "room" with that name (or joins a room with that name if it already exists). The curious can see this screen in action on the demo site set up to allow anybody to run a free conference.

After one joins a conference, the behavior is much like the proprietary services out there. It is possible to see a tiled view with all participants, or just the person who is speaking at any given time. There are buttons to [Jitsi] mute audio and/or video, a separate area for text chat, and a button to "raise your hand" for attention. One cute feature is the ability to blur the background of one's outgoing video, though the result is somewhat ethereal.

Video and audio quality both seem to be quite good, though video suffers somewhat when there is a low-bandwidth connection involved. Jitsi claims that all data is encrypted between clients and the video bridge, though it goes through the bridge itself in the clear.

There is a screen-sharing option that can transmit the contents of a single window or the screen as a whole — though the latter leads to amusing effects if the conference itself is on-screen. The web site describes a "presenter mode" that mixes both the screen contents and the stream from the camera, but that doesn't appear to have made it into the stable builds yet.

The first person to join a room is designated the moderator, with some extra privileges. It's possible to mute participants, for example, or to kick them out entirely. There's a little window available that displays how much time each participant has spent speaking. It's also possible to set a password needed for entry into the room. It does not seem possible to delegate moderation to others, though.

Apps and more

If one connects to a Jitsi server from a mobile device, the response is a cheery message that "You need the Jitsi Meet mobile app to join this meeting on your phone". If, however, one selects the "desktop site" option helpfully provided by Chrome on Android, everything works just fine; there is no real need for the system to push the app that firmly. If this system is kept around for a while, your editor may just go in and find a way to disable that behavior.

That said, the app is not without its utility. It, too, is free software; it can be installed from F-Droid as well as from the Google Play Store. It provides most of the same features as the web version with a more finger-friendly layout. There is also an app for Apple devices, but your editor was unable to experiment with that.

A word to the wise: if the app is refusing to connect to a Jitsi server with obscure and unhelpful error messages, the problem is almost certainly with the server certificate. The app seems to be much more fastidious than browsers about things like getting any intermediate certificates in the right place. Not that your editor would have ever made any such mistakes.

There are a number of other features that weren't tried in this experiment. It is possible, for example, to stream a conference to YouTube, from whence it can be broadcast to the world. "Stream to YouTube" also seems to be the answer, for now, for anybody who wants to record a conference. If there is an Etherpad instance running on the same server, Jitsi can integrate with it. There is also SIP integration allowing people to dial into a conference using a telephone, but that requires all of the usual painful SIP setup outside of Jitsi.

In testing with a handful of participants, your editor found that the demands on the server are relatively light, but not zero — about 6-7% of a low-level cloud server per participant. Video conferencing will always require a certain amount of bandwidth, but routing that data doesn't appear to require a lot of CPU time. The web client will definitely make a laptop's fans run, though.

One thing that seems to be missing, or at least not easy to find, is the ability for the server administrator to see which conferences are running and what their resource usage is. Also lacking is central control over the outgoing video stream, which might be wanted for those trying to use Jitsi for events like virtual conferences, where they may want to keep the focus on the speaker and mix in slides, for example.

Virtual conferences, of course, are one of the areas of interest here at LWN. If current conditions persist, as they well might, it is going to be hard for the community to have face-to-face gatherings for some time. We depend heavily on those gatherings to solve difficult problems and, in general, to come to know the human beings that exist on the other side of (most) email addresses. Both of those roles are crucially important; we will need to find a way to replace them until real conferences again become possible.

There are a number of groups looking for solutions to these problems. Our community as a whole would, of course, be most comfortable with solutions built on free software. Jitsi seems like a good base to work from, if not a complete solution. Your editor will continue to investigate the alternatives in the coming weeks; stay tuned.


to post comments

Video conferencing with Jitsi

Posted Mar 24, 2020 2:13 UTC (Tue) by gwolf (subscriber, #14632) [Link]

I have long been a Jitsi user — Of the lowest kind (that is, I don't even run my own server, but am a client at the canonical implementation, https://meet.jit.si/ ). I have insisted my peers on using Jitsi as it does not require user data to be yielded; no registration is required, just connect and use.
Given COVID-19, I have moved my classroom over to Jitsi, and finally got around to configuring the Youtube recording feature. Not that I want to push my videos here (no monetization on them, promise!), but if results interest you, you can find them at https://www.youtube.com/channel/UCDqXtc9GxROhLvFQ4bX6PLg
My first Jitsi class' recording was cut short shortly after ~37 minutes (plus ~5min at the beginning where I was fiddling with stuff), but the second one was quite smooth. I had at one point 31 people connected (mostly muted both of microphone and camera), and had no quality issues. I had a guest speaker, and we interacted quite good as well.
So... I'm just sending an experience report here. I love Jitsi! :-)

Video conferencing with Jitsi

Posted Mar 24, 2020 2:31 UTC (Tue) by mtaht (subscriber, #11087) [Link]

I too started looking at jitsi this past week - but got stuck probably on the same points you documented just now, and you fixed, hopefully. thx!

I got interested, because, well, the binary blobs in zoom trouble me. Not huge on those. Also the nature of the bridge itself: "Look! it's all encrypted until zoom hq gets it!". I figure they implement CALIA ( https://en.wikipedia.org/wiki/Communications_Assistance_f... ) fully....

I have a different usage model however than the cloud. It was my hope that tons more folk would have enough uplink bandwidth to actually run a service like this in the home or "on campus", rather than the cloud. And try to leverage ipv6.

Plug: take a look at freeswitch?

And then there's this: https://peerjs.com/index.html

Video conferencing with Jitsi

Posted Mar 24, 2020 3:16 UTC (Tue) by marcH (subscriber, #57642) [Link] (1 responses)

For communication software like this, I think open standards are even more important than open-source. I'm surprised the article didn't mention WebRTC once.

Video conferencing with Jitsi

Posted Mar 27, 2020 8:15 UTC (Fri) by hackerb9 (guest, #21928) [Link]

(For those who don't know, WebRTC is the open standard, implemented by browsers, which Jitsi uses.)

Video conferencing with Jitsi

Posted Mar 24, 2020 7:05 UTC (Tue) by wojas (guest, #111363) [Link]

Thanks for this article!

I just set it up using their official Docker Compose config, which was a breeze:
https://github.com/jitsi/docker-jitsi-meet

Video conferencing with Jitsi

Posted Mar 24, 2020 7:49 UTC (Tue) by flussence (guest, #85566) [Link]

Coincidentally I had to look at what it takes to set up a Jitsi server by hand a few days ago (someone was asking for help doing that), and it seems surprisingly painless. You need an XMPP server with a HTTPS/BOSH reverse proxy — an existing IM-only setup would work — and then Jitsi plugs in as three extra daemons: two XMPP components and one HTTP API.

The official docs make it sound a bit scarier than it actually is: https://github.com/jitsi/jitsi-meet/blob/master/doc/manua...

Video conferencing with Jitsi

Posted Mar 24, 2020 11:38 UTC (Tue) by wodny (subscriber, #73045) [Link] (5 responses)

There is also an instance at https://jitsi.riot.im/ but I don't know if audio/video chat in https://riot.im/app/ is in anyway connected to that.

The Jitsi server package also has a not so pretty postrm script which fails on reloading HTTP daemons.

Jitsi Meet burns my CPU when conferencing with something under 10 people, but works with like 2-3 people. Skype seems more efficient but with many people or with video, keyboard input starts to malfunction and the system becomes sluggish and stays that way until Skype's restart. I hope for a keylogger so no chat is lost ;)

Also had to modify the Skype package before installation because it contains chrome-sandbox (installed as setuid binary of course).

Video conferencing with Jitsi

Posted Mar 24, 2020 12:06 UTC (Tue) by niner (subscriber, #26151) [Link] (4 responses)

There's a huge difference between Jitsi Meet with and without active video bridge. Without video bridge, all streams are peer to peer, so the more participants you have the more each client has to work and the more streams each participant's internet connection has to handle: O(n²). The video bridge bundles these streams on the server. This costs quite a bit of CPU on the server (but not terribly so) and obviously the bandwidth there, but it scales O(n) and works just so much better. I'm also quite sure that the video bridge is not active on meet.jit.si.

Video conferencing with Jitsi

Posted Mar 25, 2020 15:10 UTC (Wed) by sorokin (guest, #88478) [Link] (2 responses)

> it scales O(n) and works just so much better

I don't quite understand this. Even if all video streams get aggregated into one connection from server, that single connection still transmits n times the data.

My understanding is that total required bandwidth should be the same in both cases. Perhaps central server works better when participants' upload speed is limited?

Video conferencing with Jitsi

Posted Mar 25, 2020 15:23 UTC (Wed) by niner (subscriber, #26151) [Link]

It's quite possible that I misunderstood why the video bridge helps so much (which it does). It could simply be that the video bridge is a workaround for the Firefox issues mentioned in another comment. The linked hackernews discussion indicates that with peer-to-peer as soon as a Firefox user joins the meeting, performance is degraded for all participants.

It's also likely that you're right and the central server mitigates notoriously limited upload speeds of DSL and mobile (and sadly, where I live, even cable) connections.

Video conferencing with Jitsi

Posted Mar 25, 2020 15:41 UTC (Wed) by excors (subscriber, #95769) [Link]

From https://jitsi.org/jitsi-videobridge-performance-evaluation/ it sounds like the key for scalability is the "last N" mode. The bridge receives streams from all participants, but only broadcasts the streams from the N most recent "dominant speakers". That means the bridge's traffic scales linearly with the number of participants, and a client's traffic scales with N (which is a small constant).

If you don't use that mode then I think it's O(num_participants^2) on the bridge and O(num_participants) on the clients, though with better constant factors than peer-to-peer: each client only has to upload their stream once to the bridge (vs num_participants-1 times to every other peer), which is good since clients usually have much lower upload bandwidth than download.

Video conferencing with Jitsi

Posted Mar 27, 2020 21:00 UTC (Fri) by Sesse (subscriber, #53779) [Link]

I can understand why meet.jit.si doesn't; it uses 40% CPU just for sending on a measly 100 Mbit/sec of TCP! That's two orders of magnitude away from what an optimized web server does these days.

Video conferencing with Jitsi

Posted Mar 24, 2020 13:05 UTC (Tue) by Sesse (subscriber, #53779) [Link] (1 responses)

Unsurprisingly, I've been trying a whole lot of videoconferencing services recently… my experience is that Jitsi, as in meet.jit.si, is surprisingly good, although higher latency (and yes, the need for an app on mobile is suboptimal). When I last looked at it a few years ago, it was pretty much for free software people only (ie., not very usable), so there have certainly been strides here.

FWIW, so far, Google Meet, Skype, Discord are working well for me in the browser. Zoom is a disaster (the audio just consistently loses 50% of samples or so, and even when using the phone-in option for audio, it sometimes breaks up), although I haven't tried the standalone client yet.

Video conferencing with Jitsi

Posted Apr 2, 2020 12:13 UTC (Thu) by nbecker (subscriber, #35200) [Link]

google meet seems to be subscription only

Video conferencing with Jitsi

Posted Mar 24, 2020 14:13 UTC (Tue) by karim (subscriber, #114) [Link] (1 responses)

Over at Hackernews several people report that Jitsi has serious issues with Firefox's lack of simulcast -- several good discussion points all around regarding Jitsi real-world experience:
https://news.ycombinator.com/item?id=22669968

Video conferencing with Jitsi

Posted Mar 27, 2020 18:59 UTC (Fri) by flussence (guest, #85566) [Link]

This deficiency was pointed out *years* ago when Jitsi Meet was first released to the public. The usual barrage of excuses and deflection played out until everyone gave up trying to get through and went back to using Discord/Slack electron apps.

I'm only surprised that Jitsi doesn't have a room-moderator option to kick out broken browsers. Apparently the side effect of letting Firefox into a video call is everyone else's performance tanks? That's hardly fair.

Video conferencing with Jitsi

Posted Mar 24, 2020 15:00 UTC (Tue) by dskoll (subscriber, #1630) [Link] (3 responses)

I tried installing it on a Debian 10 box, but I wanted it to run from a subdirectory (https://www.example.org/meet/) rather than take over the root of my web space, and I just could not get it to work. Lots of googling found https://github.com/jitsi/jitsi-meet/issues/223 but no luck. :(

Video conferencing with Jitsi

Posted Mar 24, 2020 20:31 UTC (Tue) by dskoll (subscriber, #1630) [Link] (2 responses)

I gave up and installed it in its own virtual Apache server meet.example.org and it works fine. I'm very impressed with the audio quality; quite a bit better than Zoom or Skype.

Video conferencing with Jitsi

Posted Mar 24, 2020 21:41 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link] (1 responses)

It's much worse for me. It feels like it's coming from 90-s cellphone - very "metallic" sounding. Video quality is OK.

Video conferencing with Jitsi

Posted Mar 25, 2020 2:31 UTC (Wed) by dskoll (subscriber, #1630) [Link]

I experienced very good audio quality for the duration of one call. On a other call, the audio quality sometimes got worse from time to time and sounded as you described, but I prefer a tool that degrades quality if there are link problems to one that drops audio or makes it unintelligible.

Video conferencing with Jitsi

Posted Mar 25, 2020 17:37 UTC (Wed) by frispete (subscriber, #89956) [Link] (1 responses)

Thanks for this nice article. Coincidentally, I'm almost there as well. Similar to your issue, but with a different reason (unsolved): https://github.com/jitsi/docker-jitsi-meet/issues/294. What a pity, since it feels to be almost operational.

Video conferencing with Jitsi

Posted Mar 27, 2020 8:19 UTC (Fri) by frispete (subscriber, #89956) [Link]

It is working now. The magic trick that solved the issue was commenting out JVB_STUN_SERVERS.

Video conferencing with Jitsi

Posted Mar 26, 2020 1:51 UTC (Thu) by mtaht (subscriber, #11087) [Link] (2 responses)

Dear Jon:

It would be pretty cool if you put up your jitsi server and invited folk into a "commune with the editors" - both as a stress test and, well, It's been pretty lonely around here lately, and I kind of miss yer ugly mug. Some virtual beer all 'round might help too.

Communing with the editors

Posted Mar 26, 2020 14:03 UTC (Thu) by corbet (editor, #1) [Link] (1 responses)

Bringing in your ugly mug would stress-test the software in its own way! :)

I have been pondering various schemes, but things are still at a pretty early point, stay tuned.

Communing with the editors

Posted Mar 27, 2020 17:11 UTC (Fri) by mtaht (subscriber, #11087) [Link]

Certainly I know that fq_codel, cake, (and pie to some extent) make quality videoconferencing wonderful under contending loads, but I only theorize that these algos will also make p2p multi-party conferences work much better also.

(e2e there's also ongoing issues like poorly implemented rtsp feedback - so far as I know freeswitch doesn't do it still)

In the long scheme of things merely removing network jitter, latency and irrelevant loss (and even adding in-band sce or l4s signaling), is hugely important, but also encoder latency and responsiveness is a huge problem also. I miss scan lines! ( https://lola.conts.it/ )

trying to find people wit the time and motivation to tackle this has long been on my mind ( https://www.internetsociety.org/events/latency2013/ ) . I really do miss the days when making a phone call across town on the switched phone network was like wispering in your lover's ear!

And first up would be getting more folk to enable quality uplink queue management. Or show how bad it can get when you don't have it.

big blue button?

Posted Mar 26, 2020 2:13 UTC (Thu) by anarcat (subscriber, #66354) [Link] (3 responses)

I have tried Jitsi a few times and it generally works well. The challenge is to scale it past a dozen people or so. Things really start to break down then. We're still trying to figure out what exactly is going on (with Firefox being one of the likely candidates) but I'm wondering of people have tried other solutions, and especially:

https://bigbluebutton.org/

AKA "BBB". That tool seems to be more "featureful" (to be polite) but seems very promising. I really like the way it allows you to whiteboard stuff together and share slides. Its moderation features also seem more advanced than Jitsi. But I'm wondering how it compares in terms of performance and ease (or not) of installation (something which Jitsi doesn't exactly shine on either).

Thanks for the review!

big blue button?

Posted Mar 26, 2020 14:04 UTC (Thu) by corbet (editor, #1) [Link] (1 responses)

BBB is on my list of things to look at.

Other options to consider

Posted Mar 30, 2020 19:50 UTC (Mon) by sumanah (guest, #59891) [Link]

You may find this list of tools to consider useful. Did you know that Etherpad has a WebRTC-powered video feature now? I just found out last week.

big blue button?

Posted Apr 2, 2020 10:42 UTC (Thu) by jch (guest, #51929) [Link]

I've been doing my lectures over BigBlueButton over the last weeks, and it's a joy to use. I upload my lecture notes beforehand, which I can annotate during the lecture; the students are able to interact (with me and with each other) over textual chat.

Just in case, one of my TAs acts as moderator, but we've only had a single case of rickrolling up to now.

The only complaint I have is that the UI for disabling the receiving of video is difficult to find, which is useful for people who pay for internet by volume or who don't want to see my face.

Video conferencing with Jitsi

Posted Mar 26, 2020 17:35 UTC (Thu) by vegge (guest, #6926) [Link] (1 responses)

> In the default setup, a new user connecting to the server will see a screen inviting them
> to create a new meeting; ...

Is there a way to set up simple access control? It looks like the default server configuration is open to the world?

Video conferencing with Jitsi

Posted Mar 26, 2020 19:40 UTC (Thu) by dskoll (subscriber, #1630) [Link]

You can set it up so only authorized users can create meetings, and when you create a meeting, you can password-protect it so only users you want to allow in the meeting can join it.

Initially, I just put a password on the web site using .htpasswd, but that broke the Jitsi Android app.

Jangouts (Janus Gateway frontend)

Posted Mar 28, 2020 20:19 UTC (Sat) by pevik (subscriber, #112535) [Link]

We use Jangouts which is Janus Gateway frontend
https://github.com/jangouts

Video conferencing with Jitsi

Posted Apr 1, 2020 15:21 UTC (Wed) by stevem (subscriber, #1512) [Link]

"Not that your editor would have ever made any such mistakes."

*grin* BTDT...

Video conferencing with Jitsi

Posted Apr 6, 2020 13:36 UTC (Mon) by vejeta (subscriber, #138096) [Link]

Are there RAM recommendations per number of concurrent users?

Intermediate certificate fun

Posted Apr 14, 2020 9:34 UTC (Tue) by gevaerts (subscriber, #21521) [Link] (1 responses)

Web browsers usually cache intermediate certificates, so if you've ever visited a website that uses the same one, things will Just Work. If you had tried with a clean profile, you probably would have had the same error (but maybe in a more understandable form)

Intermediate certificate fun

Posted Apr 14, 2020 13:46 UTC (Tue) by mathstuf (subscriber, #69389) [Link]

Well, Firefox now has a solution for missing intermediates: https://lwn.net/Articles/817182/ But the general case solution implemented by other browsers look like information leaks to me (if they do AIA chasing).

Video conferencing with Jitsi

Posted Apr 19, 2020 23:31 UTC (Sun) by wookey (guest, #5501) [Link]

For anyone interested in online conferencing options (and suddenly there are way more than there used to be ;-), this document from the Association for Computing Machinery is a useful summary of nearly everything available:
https://people.clarkson.edu/~jmatthew/acm/VirtualConferen...
and the corresponding google doc:
https://docs.google.com/document/d/1LLLniPkf48CCZyG_BNy1y...

Referenced from: https://www.acm.org/virtual-conferences

I too have been a big Jitsi meet user for years. It's worked remarkably well despite much increased usage over the last month. I'm very interested in solutions for conferences where you really want a decent-quality broadcast channel as well as low-latency bidirectional channel with optional moderator control. Debian needs to pick something, and is obviously capable of hacking things to make them better :-)

Another free option is 'Jangouts' which is a web front-end for libjanus webRTC. Looks like it may be a promising tech. Anyone with experience of libjanus vs jitsi videobridge? https://github.com/jangouts/jangouts/blob/master/README.md

No-one seems to have mentioned Apache openmeetings yet either. Any good? https://openmeetings.apache.org/


Copyright © 2020, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds