Export BigBlueButton recordings from the HPI Schul-Cloud to video.
BigBlueButton recordings are composed of different media streams – audio, webcams, screenshare, slides… – that need to be played in sync. To make it easier to archive a recorded web conference, this projects combines the captured media streams into a single video.
- Clone this repository.
- Initialize Git submodules:
git submodule update --init
- Install dependencies:
npm install
- Run the linter:
npm run lint
ornpm run lint -- --fix
- Run unit-tests:
npm run test
ornpm run test -- --watch
The easiest way to run this project is via Docker.
A Dockerfile
is provided. Build an image by running:
docker build --tag schulcloud-bbb-recorder .
The service expects a few environment variables to be set. You can either specify these on the command-line when starting a container or load them from a file:
# Copy the provided example env file
cp .env.{example,local}
# Edit the file to match your setup
if [ -z "$VISUAL" ]; then $EDITOR .env.local; else echo $VISUAL .env.local; fi
# Then start a container from the image with your configuration
docker run --env-file .env.local schulcloud-bbb-recorder
# …or, set these values directly via the "run" command
docker run --env AMQP_URI=… schulcloud-bbb-recorder
For an example of how to get started with docker-compose
, check out our docker-compose.example.yml.
docker-compose --file docker-compose.example.yml build
docker-compose --file docker-compose.example.yml up
The image includes the dockerize
utility in case you have to wait for the message broker or upload endpoint to become available before starting to process jobs.
If you have a BigBlueButton playback URL and you want to trigger the recorder service directly, check out script/send
. It allows you to push properly encoded messages to the broker and should also give you an idea of how to use the recorder from other projects.