Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: clarify information on docs regarding recording #17865

Merged
merged 8 commits into from May 11, 2023
2 changes: 1 addition & 1 deletion docs/docs/administration/customize.md
Expand Up @@ -382,7 +382,7 @@ After you edit the configuration file, you must restart the recording processing

#### Enable generating mp4 (H.264) video output

By default, BigBlueButton generates recording videos as `.webm` files using the VP9 video codec. These are supported in most desktop web browsers, but might not work on iOS mobile devices. You can additionally enable the H.264 video codec in some recording formats:
By default, BigBlueButton generates recording videos as `.webm` files using the VP9 video codec. These are supported in most desktop web browsers, but might not work on iOS mobile devices. You can additionally enable the H.264 video codec in some recording formats (Keep in mind that the following `.yml` files mentioned ahead only exist when the respective format package is installed):

**`video`**

Expand Down
33 changes: 33 additions & 0 deletions docs/docs/development/recording.md
Expand Up @@ -642,12 +642,45 @@ ruby publish/presentation.rb -m <meeting-id>-presentation

Notice we appended "presentation" to the meetingId, this will tell the script to publish using the "presentation" format.

### Running record-and-playback as a service

You can deploy your changes by running `deploy.sh` and restarting the recording-related services:
```
systemctl restart bbb-rap-starter
systemctl restart bbb-rap-resque-worker
```

#### Deploying other formats

When running `deploy.sh`, it will only set the presentation workflow by default. However it is possible to add other formats too such as video, screenshare, etc. In order to do that, you just have to change `deploy_format "presentation"` in the `deploy.sh` script, adding whatever formats you want, so, in case of `video` and `screenshare`, it would be:

```bash
deploy_format "presentation video screenshare"
```

Another adaptation to deploy other formats is to follow the steps in [additional recording formats](/administration/customize#install-additional-recording-processing-formats) to enable these new workflows you just set. For example, in your `bigbluebutton.yml`, you may have:

```yml
steps:
archive: 'sanity'
sanity: 'captions'
captions:
- 'process:presentation'
- 'process:video'
'process:presentation': 'publish:presentation'
'process:video': 'publish:video'
```

At last, if it is the first time you set one other recording format, you may have to reload nginx in addition to the other commands mentioned previously in this section, like so:

```
systemctl restart bbb-rap-starter
systemctl restart bbb-rap-resque-worker
systemctl reload nginx
```

If you are not changing the nginx files for each format, it is not mandatory to reload nginx every time you run `deploy.sh`.

### Troubleshooting

Apart from the command
Expand Down
14 changes: 12 additions & 2 deletions record-and-playback/deploy.sh
Expand Up @@ -23,6 +23,7 @@ sudo cp core/Gemfile /usr/local/bigbluebutton/core/Gemfile
sudo rm -rf /usr/local/bigbluebutton/core/lib
sudo cp -r core/lib /usr/local/bigbluebutton/core/
sudo rm -rf /usr/local/bigbluebutton/core/scripts
sudo rm -rf /usr/local/bigbluebutton/core/playback
sudo cp -r core/scripts /usr/local/bigbluebutton/core/
sudo rm -rf /var/bigbluebutton/playback/presentation/0.81/
sudo rm -rf /var/bigbluebutton/playback/presentation/0.9.0/
Expand All @@ -33,14 +34,23 @@ function deploy_format() {
for format in $formats
do
playback_dir="$format/playback/$format"
if [ $format == "screenshare" ]; then
playback_dir="$format/playback"
fi
scripts_dir="$format/scripts"
if [ -d $playback_dir ]; then sudo cp -r $playback_dir /var/bigbluebutton/playback/; fi
nginx_file="$format/scripts/*.nginx"
if [ -d $playback_dir ]; then
if [ "$format" == "presentation" ]; then sudo cp -r $playback_dir /var/bigbluebutton/playback/; fi
if [ "$format" == "screenshare" ]; then sudo mkdir -p /usr/local/bigbluebutton/core/playback/$format; sudo cp -r $playback_dir/* /usr/local/bigbluebutton/core/playback/screenshare/; fi
if ([ "$format" != "presentation" ] & [ "$format" != "screenshare" ]); then sudo mkdir -p /usr/local/bigbluebutton/core/playback/$format; sudo cp -r $playback_dir /usr/local/bigbluebutton/core/playback/; fi
fi
if [ -d $scripts_dir ]; then sudo cp -r $scripts_dir/* /usr/local/bigbluebutton/core/scripts/; fi
if [ -f $nginx_file ]; then sudo cp $scripts_dir/*.nginx /usr/share/bigbluebutton/nginx/; fi
sudo mkdir -p /var/log/bigbluebutton/$format /var/bigbluebutton/published/$format /var/bigbluebutton/recording/publish/$format
done
}

deploy_format "presentation"
deploy_format "presentation screenshare notes"
GuiLeme marked this conversation as resolved.
Show resolved Hide resolved

CAPTIONS_DIR=/var/bigbluebutton/captions/
if [ ! -d "$CAPTIONS_DIR" ]; then
Expand Down