Video conferencing with 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
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.
The LWN site is currently under high scraper load, so comment display has been suppressed for anonymous users. If you are a human, you may read the comments by clicking the button below:
Note: you can avoid this step in the future by logging into your LWN account.
