Skip to content

Script to render a video of the presentation area from a BBB recording events.xml

License

Notifications You must be signed in to change notification settings

bigbluebutton/bbb-presentation-video

Repository files navigation

BigBlueButton Presentation Area Video Generator

This is a tool that is part of the BigBlueButton recording processing system, used to generate a video file of just the presentation area, with slides and annotations included, from the recording events file and archived presentation pdf files.

The current version is work in process adding support for the tldraw whiteboard introduced in BigBlueButton 2.6.

Development Environment Notes

Several libraries are used via the gobject-introspection based bindings. The corresponding ubuntu packages to get these bindings are:

  • gir1.2-glib-2.0
  • gir1.2-poppler-0.18
  • gir1.2-gtk-3.0
  • gir1.2-gdkpixbuf-2.0
  • gir1.2-pango-1.0

You'll need ffmpeg for the video encoding to operate correctly. The version included with the current BigBlueButton release is sufficient.

You will also need the Microsoft core fonts installed (or something metric-compatible with appropriate aliases enabled like fonts-croscore), since the text annotations require Arial.

For development, I recommend using a python venv. Set this up with a command like:

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip --require-virtualenv --upgrade pip

Any time you open a new terminal, you can re-run the source command to load it again later.

With the venv activated, you can use pip to install the required python modules and development tools:

pip install --require-virtualenv --upgrade -r requirements-dev.txt -c constraints-ubuntu-focal.txt

(You should re-run this occasionally to pull in updates to the development tools.)

Testing

bbb-presentation-video does not currently have any test suite to run, but we do enforce typing correctness using mypy.

To run the type checking, run mypy in the root of the project checkout with no additional options.

Configuration is loaded from pyproject.toml. Type stubs for some third party libraries that do not provide type information is located in the typings directory.

Code Style

Standard code style is enforced using black with default options. You can run black . in the root of the project to correct all files, or run black on a specific file.

Additionally, sorting of import directives is done using isort using the black-compatible profile. You can run isort . in the root of the project to correct all files, or run isort on a specific file.

Note that you may need to run black after running isort to correct minor style issues that isort sometimes introduces.