Remote Conference Software

With the COVID-19 outbreak, may conferences have moved to be fully virtual. This has been achieved by streaming talks and using IRC or other channels for audience participation. Libreplanet used Jitsi to connect the moderators and presenters and IRC to facilitate discussion between attendees. The talks were streamed to their website, where people could watch them.

DebConf 19 also experimented with remote participation for two talks: What's new in the Linux kernel and Anti-Harassment Bof. These used RTMP and Jitsi respectively.

In both cases, I have observed several limitations that prevent the experience from feeling fully engaging and from flowing smoothly. Jitsi provided real-time communication, but this does not scale to include the audience. It lacks the moderation features required for a presenter to give a talk and take questions without allowing people, even accidentally, to take over the stream and the output video. RTMP provided this flexibility, but requires specific configuration to prevent the delay between presenter and attendee to be large enough that real-time Q&A is impossible. Further, as seen at Libreplanet and DC19, the Jitsi solutions ended up running through an RTMP CDN before reaching attendees anyway. This incurs additional delays.


While these existing solutions can be shoe-horned into working, I would like to take the opportunity to develop a better solution, one that ideally integrates the strengths highlighted above, while mitigating some of the weaknesses. From my point of view, I see the following list of requirements:

  1. Configurable rooms – conference organisers need to be able to set up different rooms, similar to how a physical conference does. A room can have talks, BoFs or could be a 'hallway track' (where attendees can have discussions between themselves).
  2. A talk can have 1 or more presenters and some moderators. The presenter is responsible for displaying their own slides (OBS, screen sharing, etc), while the moderator is responsible for managing the room. This includes time remaining, questions and introducing the presenter.
  3. Attendees can join and watch anonymously, but are required to identify themselves in order to ask questions or participate in discussion. This reduces abuse and allows moderators to ensure that the conference Code of Conduct is adhered to.
  4. Discussion can occur in an embedded IRC client in the software. Thus existing IRC workflows are maintained and low-bandwidth remote participation is possible.
  5. Q&A can be handled through the web-interface. Attendees can signal that they have a question, and a moderator or the presenter can allow them to ask. This audio question is relayed to everyone in the room and once the question is asked, the audio is switched back to the presenter/moderator.
  6. Attendees can mute their audio and/or video without issue.

There are several opportunities for bad actors to abuse this system. Questions will need to be able to be cut short by moderators if necessary. In presentation talks, attendee audio needs to be muted unless explicit permission is given for the attendee to talk. Attendee registration for inclusion in the discussion is important, as this allows moderators to ban bad actors more easily.

In BoF sessions, the audio policy needs to be slightly different from presentation talks. In a BoF, many people give input and the discussion is more of a round-robin style. Here, people should be able to indicate that they intend to be part of the discussion, thus having their audio and video unmuted. The discussion then takes the style adopted by most chat clients, such as Jitsi, where the active speaker's video is shown. This should be able to be overridden by a constant video source such as slides or some other relevant information.

I envision this system would use RTMP on the backend, allowing people to connect to end-points mapped to rooms. This would allow people to use OBS or other streaming software to integrate slides, transitions and other media into their presentations. I would like to leverage existing software such as Jitsi and IRC if possible, as this would make implementation easier (hopefully). Development is on GitLab. If you are interesting in getting involved, or have comments:

More concrete planning is happening here