A new version of bbb-mp4 that is super simple and easy to integrate with BigBlueButton to automatically generate MP4 recordings.
After a BigBlueButton class ends, recording process kicks in, which will process recording in three stages - archieve, process and publish. Once recording is published, /usr/local/bigbluebutton/core/scripts/post_publish/post_publish.rb
is executed.
In post_publish.rb
, we invoke bbb-mp4.sh
with corresponding meeting_id
to convert recording into mp4 video.
bbb-mp4.sh
starts a node process to launch Chrome browser with the BigBlueButton playback URL in a Virtual Screen Buffer, that plays the recording and record the screen in WEBM format.
After compeltion of recording, FFmpeg is used to convert WEBM to MP4 and moved to /var/www/bigbluebutton-default/recording
.
You can view the MP4 video at https://<your-bbb-fqdn>/recording/<meeting_id>.mp4
.
# Assuming you install bbb-mp4 project at /var/www/
# SSH to your BigBlueButton server and execute the following commands
cd /var/www
git clone https://github.com/manishkatyan/bbb-mp4.git
cd bbb-mp4
cp .env-example .env
Edit .env
to update the following parameters:
- bbb_fqdn: fully-qualified domain name of your BigBlueButton server (Example - bbb.higheredlab.com)
- mp4_dir: location where converted MP4 videos should be kept. Leave it at the default value so that you can view MP4 video at
https://<your-bbb-fqdn>/recording/<meeting_id>.mp4
.
# Execute the following to install all required packages.
./bbb-mp4-install.sh
bbb-mp4-install.sh
will install the following packages:
- XVFB
- Google Chrome
- FFmpeg
- NodeJS
- Dependencies
During this installation, bbb-mp4-install.sh
will also do the following:
- update the default
post_publish.rb
to invokebbb-mp4.sh
that will start automatic MP4 conversion after a class recording is published. - create a directory
recording
at/var/www/bigbluebutton-default
to store converted MP4 videos that can be accessed via browser. - update the default playback at
/var/bigbluebutton/playback/presentation/2.0/playback.html
to redirect to MP4 videos at/recording
.
# give bigbluebutton user sudo access
usermod -aG sudo bigbluebutton
# make sudo access passwordless
sudo visudo
# add the following line at the end of the file
bigbluebutton ALL=(ALL) NOPASSWD: ALL
You need to give user bigbluebutton sudo access, as detailed above, for bbb-mp4 to run correctly.
No changes are required from your side to view MP4 videos created by bbb-mp4.
As we updated the default playback.html, when you would visit the default playback url - https://<your-bbb-fqdn>/playback/presentation/2.0/playback.html?meetingId=<meeting_id>
- you would be redirected to the corresponding MP4 video url - https://<your-bbb-fqdn>/recording/<meeting_id>.mp4
.
If you are using Greenlight or Moodle, you will continue to use the same way to view MP4 videos.
In case you want to restore the default playback.html, you can find it at /var/bigbluebutton/playback/presentation/2.0/playback.html.default
.
Check-out the following apps to further extend features of BBB.
Scripts for BigBlueButton admins including extracting IP of users joining, participants attendance, poll answers and many other analytics.
Integrate Twilio into BigBlueButton so that users can join a meeting with a dial-in number. You can get local numbers for almost all the countries.
Better audio quality, increase recording processing speed, dynamic video profile, pagination, fix 1007/1020 errors and use apply-config.sh to manage your customizations are some key techniques for you to optimize and smoothly run your BigBlueButton servers.
Livestream your BigBlueButton classes on Youtube or Facebook to thousands of your users.
Everything you need to know about BigBlueButton including pricing, comparison with Zoom, Moodle integrations, scaling, and dozens of troubleshooting.
bbb-mp4 app builds on the ideas from several other projects, including: