Bigbluebutton recordings export to webm or mp4 & live broadcasting. This is an example how I have implemented BBB recordings to distibutable file.
/var/www/bigbluebutton-default/record. You can change value of copyToPath from .env.mp4. Default webmvideoBitsPerSecond property in background.jsapt install xvfb)dependencies_check.sh (run ./dependencies_check.sh to install all)The latest Google Chrome stable build should be use.
curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
apt-get -y update
apt-get -y install google-chrome-stable
FFmpeg (if not installed already & have plan for mp4 or RTMP)
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt-get update
sudo apt-get install ffmpeg
Clone the project first:
git clone https://github.com/jibon57/bbb-recorder
cd bbb-recorder
npm install --ignore-scripts
cp .env.example .env
node export.js "https://BBB_HOST/playback/presentation/2.0/playback.html?meetingId=MEETING_ID" meeting.webm 10 true
Options
You can pass 4 args
.webm at end). You can use "MEETING_ID" (without .webm) to set the meeting ID as export name. Default: MEETING_IDYou can also use liveJoin.js to live join meeting as a recorder & perform recording like this:
node liveJoin.js "https://BBB_HOST/bigbluebutton/api/join?meetingId=MEETING_ID...." liveRecord.webm 0 true
Here 0 mean no limit. Recording will auto stop after meeting end or kickout of recorder user. You can also set time limit like this:
node liveJoin.js "https://BBB_HOST/bigbluebutton/api/join?meetingId=MEETING_ID...." liveRecord.webm 60 true
Sometime you may want to broadcast meeting via RTMP. To test you can use ffmpegServer.js to run websocket server & liveRTMP.js to join the meeting. You'll have to edit rtmpUrl & ffmpegServer info inside .env file (if need).
node ffmpegServer.jsnode liveRTMP.js "https://BBB_HOST/bigbluebutton/api/join?meetingId=MEETING_ID...."
You can also set duration otherwise it will close after meeting end or kickout:
node liveRTMP.js "https://BBB_HOST/bigbluebutton/api/join?meetingId=MEETING_ID...." 20
Check the process of websocket server, ffmpeg should start sending data to RTMP server.
When you will run the command that time Chrome browser will be open in background & visit the link to perform screen recording. So, if you have set 10 seconds then it will record 10 seconds only. Later it will give you file as webm or mp4.
Note: It will use extra CPU to process chrome & ffmpeg.
We are offering cheaper Bigbluebutton Premium hosting or Bigbluebutton installation/configuration/loadbalance service. You can send me email jibon[@]mynaparrot.com
puppetcam. Most of the parts were copied from there.
Content type
Image
Digest
Size
608.3 MB
Last updated
about 6 years ago
docker pull mirhosting/bbb-recorder