All Projects → plugorgau → bbb-render

plugorgau / bbb-render

Licence: MIT License
Scripts to convert a BigBlueButton recording into a single video file

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to bbb-render

public-speaking
🎤 List of presentation, volunteer and initiatives
Stars: ✭ 11 (-76.09%)
Mutual labels:  slides
PILOS
PILOS is an easy-to-use open source front-end for BigBlueButton servers with a built-in load balancer.
Stars: ✭ 15 (-67.39%)
Mutual labels:  bigbluebutton
getting-started-with-grails
Conference Talk - Getting Started with Grails
Stars: ✭ 23 (-50%)
Mutual labels:  slides
slipshow
An engine for displaying slips, the next-gen version of slides
Stars: ✭ 17 (-63.04%)
Mutual labels:  slides
role-of-babel-in-js
Role of Babel in JS (TC39 May 2017)
Stars: ✭ 14 (-69.57%)
Mutual labels:  slides
slides
No description or website provided.
Stars: ✭ 27 (-41.3%)
Mutual labels:  slides
cicero
🎤 Serving presentation slides written in Markdown.
Stars: ✭ 50 (+8.7%)
Mutual labels:  slides
LinuxSysAdmin
中传信安专业必修课 - Linux系统与网络管理 课件
Stars: ✭ 33 (-28.26%)
Mutual labels:  slides
markdownslides
A "markdown-first" approach for generating beautiful browser-based slides easily. Based on Reveal.js and Reveal-Jekyll.
Stars: ✭ 37 (-19.57%)
Mutual labels:  slides
markdown-lab
Docker based Markdown Editing Environment for slides, resume, books and articles; New Linux ELF Video Course from this project author: https://www.cctalk.com/m/group/88089283
Stars: ✭ 46 (+0%)
Mutual labels:  slides
IT-PPT
IT 行业相关的 PPT 收集,关注大数据、人工智能、软件架构等。
Stars: ✭ 48 (+4.35%)
Mutual labels:  slides
cyber-gym
Deliberately vulnerable scripts for Web Security training
Stars: ✭ 19 (-58.7%)
Mutual labels:  slides
nicar tworkshop
Slides for #NICAR18 workshop on collecting and analyzing Twitter data
Stars: ✭ 23 (-50%)
Mutual labels:  slides
cafe
🧊 Презентації та Воркшопи
Stars: ✭ 20 (-56.52%)
Mutual labels:  slides
SliderViewLibrary
An easy to use Android Library to get slides in apps using images or image URLs
Stars: ✭ 35 (-23.91%)
Mutual labels:  slides
the-joy-of-css
How to touch a users eyes without hurting them or freaking out.
Stars: ✭ 17 (-63.04%)
Mutual labels:  slides
markdown-deck
A web component for presenters
Stars: ✭ 15 (-67.39%)
Mutual labels:  slides
meetup-presentations berlin
R-Ladies Berlin - Collection of presentation and information
Stars: ✭ 24 (-47.83%)
Mutual labels:  slides
talks
💥 Browser-based slides or PDFs of our talks and presentations
Stars: ✭ 91 (+97.83%)
Mutual labels:  slides
diorama
A set of React.js components to create easy en extendable presentations.
Stars: ✭ 17 (-63.04%)
Mutual labels:  slides

BigBlueButton Presentation Renderer

The BigBlueButton web conferencing system provides the ability to record meetings. Rather than producing a single video file though, it produces multiple assets (webcam footage, screenshare footage, slides, scribbles, chat, etc) and relies on a web player to assemble them.

This project provides some scripts to download the assets for a recorded presentation, and assemble them into a single video suitable for archive or upload to other video hosting sites.

Prerequisites

The scripts are written in Python, and rely on the GStreamer Editing Services libraries. On an Ubuntu 20.04 system, you will need to install at least the following:

sudo apt install python3-gi gir1.2-ges-1.0 ges1.0-tools python3-intervaltree

You may also want to install the Pitivi video editor to tweak the result before rendering:

sudo apt install pitivi

Downloading a presentation

The first script will download the presentation assets locally:

./download.py presentation_url outdir

The presentation_url should be a full URL containing the string /playback/presentation/2.0/playback.html?meetingId=. This will download the presentation metadata, video footage and slides.

Create a GES project

The second script combines the downloaded assets into a GStreamer Editing Services project.

./make-xges.py outdir presentation.xges

It takes the following optional parameters to influence the project:

  • --start=TIME and --end=TIME can be used to trim footage from the start or end of the recording. This can be helpful if the recording was started early, or you want to split the recoridng into multiple projects.
  • --width=WIDTH and --height=HEIGHT control the dimensions of the video. The default resolution is 1920x1080.
  • --webcam-size=PERCENT controls how much of the frame width will be devoted to the webcam footage. This defaults to 20%.
  • --stretch-webcam stretches the webcam footage by 33%. This was added to correct the camera aspect ratio in some of our recordings.
  • --backdrop=FILE sets a still image to place behind other elements. This can be used to fill in the empty space in the frame.
  • --opening-credits=FILE[:DURATION] and --closing-credits=FILE[:DURATION] will add credits to project. These can either be videos or still images (which will default to 3 seconds duration). These options can be repeated to add multiple credits.
  • --annotations will include whiteboard annotations and red dot cursor to slides.

Some accepted TIME formats:

  • ss seconds (example: 1500 or 1500.3)
  • mm:ss minutes and seconds
  • hh:mm:ss hours minutes and seconds
  • dd:hh:mm:ss days, hours, minutes and seconds

Currently the project includes the following aspects of the BBB recording:

  • Slides
  • Screensharing video
  • Webcam video+audio
  • Mouse cursor
  • Whiteboard scribbles (excluding text)

It does not cover:

  • Text chat

The project can be previewed using the ges-launch-1.0 command line tool:

ges-launch-1.0 --load presentation.xges

It can also be loaded in Pitivi if you want to tweak the project before rendering.

Render Video

If everything looks good, the project can be rendered to a video. The following should produce an MP4 file suitable for upload to YouTube:

ges-launch-1.0 --load presentation.xges -o presentation.mp4

Or alternatively, it can be rendered as WebM:

ges-launch-1.0 --load presentation.xges -o presentation.webm \
  --format 'video/webm:video/x-vp8:audio/x-vorbis'

License

Copyright (c) 2020-2021 James Henstridge and contributors

The project is Free as in freedom software, released under the terms of the MIT License.

See the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].