wiki:restream

Version 4 (modified by Jamie McClelland, 5 years ago) (diff)

--

Restream

Jitsi meetings are an excellent way to invite a handful of people to a web-based video conference. However, if more than a dozen or so people connect, the quality can start to degenerate. As a result, jitsi is not a useful way to broadcast a meeting to a lot of people.

Restream allows us to take a jitsi meeting and send the video and audio to our icecast servers, which are designed to handle hundreds of simultaneous connections.

This page documents how to use restream.

The restream system is currently only available to MF/PL system administrators.

Setup

First, ensure you have joined the jitsi meeting using the browser you intend to use for your own participation. This step ensures you are granted moderator rights.

Next, login to dee.mayfirst.org as root:

ssh root@dee.mayfirst.org

Next, launch the stream specifying the final part of the jitsi URL. In other words, if your jitsi meeting is at https://meet.mayfirst.org/mfpl, you would specify "mfpl" as the only argument, e.g.:

restream mfpl

Then, check for the stream at: https://a.stream.mayfirst.org:8000/mfpl.webm

When you are done (assuming your stream URL was "mfpl"):

docker stop mfpl
docker rm mfpl

How it works

The script launches a docker container that runs firefox under xvfb (a simulated X windows environment). Firefox loads the jitsi URL and then ffmpeg streams the "desktop" to icecast.

The code handling the docker creation and script to start it is available via git clone git://git.mayfirst.org/mfpl/restream

The launcher script reads the file /etc/restream.conf to get the properly URL for our jitsi instance and the URL, username, and password for icecast.

Debugging

If you want to get a root shell on the docker container as it is running, use the exec sub-command (replace "mfpl" with the stream URL):

docker exec -it mfpl bash

You can stop and restart the container with:

docker stop mfpl
docker start mfpl

However, careful when restarting... the old web session may persist in the jitsi session