Jitsi
We use a self-hosted Jitsi Meet instance for video conferencing. Thanks go to Cleura for providing the server VM for it.
Jitsi has served us well, providing good quality and reliable VC service while allowing multiple screen shares and conferences with (at least) up to 50 video participants.
The server uses an automated deployment based on the heat-docker-jitsi-meet project.
Configuration is such everyone who knows the room can connect, unless the moderator sets a password/PIN. Opening a new room requires authentication. (Contact Kurt if you need a password.)
Links to the meeting room (as well as dial-in information) are in the appointments in the public calendar.
Usage
Connect with a desktop browser or (for mobile devices) the Jitsi Meet App.
Use the little arrows in the control bar at the bottom to select speaker, microphone and camera in case you lack audio/video.
Features
Whiteboard and Etherpad
The Jitsi instance has an etherpad and a whiteboard enabled. These tools can be used for collaborative creation and collection of content. Don't forget to save the contents to a persistent place after the meeting.
Codecs
It is configured to prefer video codecs AV1 over VP9 over VP8 over H.264. It prefers the opus audio codec.
These settings are chosen to provide good video and audio quality for clients with modern hardware at moderate bandwidth requirements. Clients can chose to use older codecs without impacting audio or video streams of others.
Dial-In
Dial-In may be more stable for participants that have a stable phone connection, but not a reliable internet connection.
We thus have an audio bridge using jigasi and asterisk connected to a SIP provider. This allows a distinct set of rooms to be provided with phone dial-in.
Here's the setup:
Room Name | Dial-in Suffix |
---|---|
SCS-Tech | 611 |
SCS-Governance | 612 |
Open-Operations | 613 |
SCS-OSISM | 614 |
SCS-Project | 615 |
SCS-Forum | 616 |
SCS-Kurt | 617 |
SCS-Taskforce | 618 |
SCS-ProjectTeam | 619 |
Dial +49-221-292772-Suffix to connect.
Rooms protected with a PIN would use 60x instead of 61x as suffix. Rooms with a three or four-digit number as room name would be connected to -61XXX or -61XXXX. Note that dial-in is not super-reliable due to occasional trouble with the SIP provider. So double-check ahead of important conference calls that require phone dial-in. Talk to Kurt to change room assignment or to resolve issues with dial-in.
Browser specific hints
Traditionally, the blink-based browsers (like Google Chrome, Chromium, Edge, ...) supported WebRTC best. Safari and Firefox do work, but at the cost of inferior codecs or increased CPU or bandwidth requirements (e.g. due to missing SimulCast support or missing hardware acceleration).
Firefox and VP9 / AV1
On Firefox, in about:config
,
you can enable media.peerconnection.video.vp9_preferred
and
media.webrtc.simulcast.vp9.enabled
for using VP9 video codec (which is better than VP8).
By enabling experimental media.webrtc.codec.video.av1.experimental_preferred
you even get AV1
(which is even better) in Firefox 139+. Depending on whether your hardware has hardware support for VP9
or AV1 encoding support and on whether that is exposed by your graphics driver stack, this may or may
not create high CPU usage which you may not consider welcome as mobile user.
Limitations and issues
Firewalls blocking UDP traffic
While the web interface uses https (port 8443) which most firewalls find acceptable, the audio and video is transmitted via UDP (port 10000+). Some corporate and many public sector firewalls believe that outgoing(!) UDP traffic is dangerous and needs to be intercepted. This means that our Jitsi setup will not work for participants behind such firewalls. (We do not currently have a COTURN server to work around this; instead we use other VC tools such as BB or OpenTalk or the tool of the partner.)
Local audio
A lack of audio is often in the local audio setup (mixer volumes turned to zero etc.).
On Linux systems, the pavucontrol
mixer may be the best starting point to resolve issues.
Selective Stream forwarding failure
Jitsi receives one or several audio and video streams from every participant and selectively forwards those to all recipients that have subscribed to these streams. (Typically, a low-res video stream is sent in addition to a medium-res and a high-res one — if any high-res subscribers exist). This approach to video-conferencing is called selective forwarding unit (SFU). Occasionally, one of the participants can not hear one other (out of many) participants but everyone else can hear each other - a subscription to an audio (or video) stream may have gotten lost. In this case, a reconnect by the one not hearing is the best remedy.
Large conferences
For large conferences, it is recommended that participants stay muted and raise their hand in order to talk, so a moderator can ensure a somewhat structured discussion. While Jitsi can route a few dozens of video streams without trouble, the combined bandwidth may become a challenge for some of the participants and it is recommended to only switch on videos for the active participants. We have not tested much above 50 participants in the SCS community, so we don't know the precise limits of the server connection or capacity we use.
Screen sharing frame rate
Some browsers seem to ignore the FPS setting and try to transmit a shared window (or a shared desktop) at high resolution (e.g. 2560x1600) with 30fps. This requires more bandwidth than ADSL links typically handle. This can result in low-resolution streams rather than the (wanted) low-fps high-resolution stream.