{"id":39681569,"url":"https://github.com/plugorgau/bbb-render","last_synced_at":"2026-01-18T09:53:27.233Z","repository":{"id":40103903,"uuid":"280885478","full_name":"plugorgau/bbb-render","owner":"plugorgau","description":"Scripts to convert a BigBlueButton recording into a single video file","archived":false,"fork":false,"pushed_at":"2023-05-31T08:13:23.000Z","size":152,"stargazers_count":63,"open_issues_count":17,"forks_count":25,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-04-13T04:59:09.869Z","etag":null,"topics":["bigbluebutton","pitivi","slides","video"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/plugorgau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-19T14:43:03.000Z","updated_at":"2024-02-19T17:33:17.000Z","dependencies_parsed_at":"2022-07-28T00:08:27.215Z","dependency_job_id":null,"html_url":"https://github.com/plugorgau/bbb-render","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/plugorgau/bbb-render","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fbbb-render","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fbbb-render/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fbbb-render/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fbbb-render/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plugorgau","download_url":"https://codeload.github.com/plugorgau/bbb-render/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plugorgau%2Fbbb-render/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigbluebutton","pitivi","slides","video"],"created_at":"2026-01-18T09:53:27.137Z","updated_at":"2026-01-18T09:53:27.197Z","avatar_url":"https://github.com/plugorgau.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BigBlueButton Presentation Renderer\n\nThe BigBlueButton web conferencing system provides the ability to\nrecord meetings.  Rather than producing a single video file though, it\nproduces multiple assets (webcam footage, screenshare footage, slides,\nscribbles, chat, etc) and relies on a web player to assemble them.\n\nThis project provides some scripts to download the assets for a\nrecorded presentation, and assemble them into a single video suitable\nfor archive or upload to other video hosting sites.\n\n## Prerequisites\n\nThe scripts are written in Python, and rely on the GStreamer Editing\nServices libraries.  On an Ubuntu 20.04 system, you will need to\ninstall at least the following:\n\n```\nsudo apt install python3-gi gir1.2-ges-1.0 ges1.0-tools python3-intervaltree\n```\n\nYou may also want to install the [Pitivi video\neditor](http://www.pitivi.org/) to tweak the result before rendering:\n\n```\nsudo apt install pitivi\n```\n\n## Downloading a presentation\n\nThe first script will download the presentation assets locally:\n\n```\n./download.py presentation_url outdir\n```\n\nThe `presentation_url` should be a full URL containing the string\n`/playback/presentation/2.0/playback.html?meetingId=`.  This will\ndownload the presentation metadata, video footage and slides.\n\n\n## Create a GES project\n\nThe second script combines the downloaded assets into a GStreamer\nEditing Services project.\n\n```\n./make-xges.py outdir presentation.xges\n```\n\nIt takes the following optional parameters to influence the project:\n\n* `--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.\n* `--width=WIDTH` and `--height=HEIGHT` control the dimensions of the video.  The default resolution is 1920x1080.\n* `--webcam-size=PERCENT` controls how much of the frame width will be devoted to the webcam footage.  This defaults to 20%.\n* `--stretch-webcam` stretches the webcam footage by 33%.  This was added to correct the camera aspect ratio in some of our recordings.\n* `--backdrop=FILE` sets a still image to place behind other elements.  This can be used to fill in the empty space in the frame.\n* `--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.\n* `--annotations` will include whiteboard annotations and red dot cursor to slides.\n\nSome accepted `TIME` formats:\n\n* `ss` seconds (example: 1500 or 1500.3)\n* `mm:ss` minutes and seconds\n* `hh:mm:ss` hours minutes and seconds\n* `dd:hh:mm:ss` days, hours, minutes and seconds\n\nCurrently the project includes the following aspects of the BBB\nrecording:\n\n* [x] Slides\n* [x] Screensharing video\n* [x] Webcam video+audio\n* [x] Mouse cursor\n* [x] Whiteboard scribbles (excluding text)\n\nIt does not cover:\n\n* [ ] Text chat\n\nThe project can be previewed using the `ges-launch-1.0` command line tool:\n\n```\nges-launch-1.0 --load presentation.xges\n```\n\nIt can also be loaded in Pitivi if you want to tweak the project\nbefore rendering.\n\n## Render Video\n\nIf everything looks good, the project can be rendered to a video.  The\nfollowing should produce an MP4 file suitable for upload to YouTube:\n\n```\nges-launch-1.0 --load presentation.xges -o presentation.mp4\n```\n\nOr alternatively, it can be rendered as WebM:\n\n```\nges-launch-1.0 --load presentation.xges -o presentation.webm \\\n  --format 'video/webm:video/x-vp8:audio/x-vorbis'\n```\n\n## License\n\nCopyright (c) 2020-2021 [James Henstridge](https://github.com/jhenstridge) and contributors\n\nThe project is Free as in freedom software, released under the terms of the MIT License.\n\nSee the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugorgau%2Fbbb-render","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplugorgau%2Fbbb-render","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugorgau%2Fbbb-render/lists"}