elan-ev / opencast-bigbluebutton-integration

Contains documentation for sending recordings form bigbluebutton to opencast
GNU Lesser General Public License v3.0
22 stars 16 forks source link

Add support for new recording format "video" #59

Closed dennis531 closed 1 year ago

dennis531 commented 1 year ago

Adds support for the new bbb recording format "video". This format creates a single video file video-0.m4v from the webcam videos and the presentation video. If the old format presentation and the new format are enabled as described below, the post_publish script will be executed for each format, in this case twice. Then both formats will be ingested into opencast.

Steps to enable the new, single-file recording format "video" in BigBlueButton 2.6

  1. Add packages
    apt-get install bbb-playback-video
  2. Edit /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml
    steps:
      archive: "sanity"
      sanity: "captions"
      captions:
        - "process:presentation"
        - "process:video"
      "process:presentation": "publish:presentation"
      "process:video": "publish:video"
  3. Restart processes
    systemctl restart bbb-rap-resque-worker.service nginx

The latest documentation can be found at:

Known Issue

Possibly, the media files for the format presentation could be missing in the transmitted media package and could lead to processing errors in the defined opencast workflow. This is caused by disabled processing scripts for presentation by the command sudo bbb-record --disable presentation on your bbb instance. The scripts can be enabled with sudo bbb-record --enable presentation and everything should work fine.

Arnei commented 1 year ago

Cool, that could make the post_publish workflow more attractive for some institutions.

Could you adjust the post publish documentation to reflect the changes? Also the link you provided to the BBB docs is dead :D

dennis531 commented 1 year ago

The requested changes should be resolved. Please check if the documentation is correct and understandable.

Arnei commented 1 year ago

The requested changes should be resolved. Please check if the documentation is correct and understandable.

Yup, looks good.

dennis531 commented 1 year ago

I tried to use this configuration

        steps:
            archive: "sanity"
            sanity: "captions"
            captions:
                - "process:presentation"
                - "process:video"
            "process:presentation": "publish:presentation"
            "process:video": "publish:video"

but only the single file recording made it into Opencast. The other recording does not seem to have made it, the Opencast Inspect WOH throws an error:

Exception message WorkflowOperationException: Mediapackage 20f1cccd-f655-4ae2-b1a6-cc801f780876 contains no media

Did I do something wrong?

The settings seem to be correct. Which BBB version do you use? Can you locate a video file under /var/bigbluebutton/published/video/#{meeting_id}/video-0.m4v on your bbb server?

dennis531 commented 1 year ago

Probably, the predefined oc workflow can not process the video. Here is my post_publish_config.toml:

### opencast configuration begin

# Variables for accessing Opencast
# Make sure change these to your Opencast installation
[opencast]
# Server URL
# Example: server = 'https://develop.opencast.org'
server = 'https://develop.opencast.org'

# User credentials allowed to ingest via HTTP basic
# Example: user = 'username'
# Example: password = 'password'
user = 'admin'
password = 'opencast'

# Workflow to use for ingest
# Example: workflow = 'bbb-upload'
workflow = 'fast'

# Allows you to add default Opencast roles to every recording
[defaultRoles]
# Default roles for the event, e.g. "ROLE_OAUTH_USER, ROLE_USER_BOB"
# Default: ""
readPerm = ""
writePerm = ""

# Default roles for the series, e.g. "ROLE_OAUTH_USER, ROLE_USER_BOB"
# Default: ""
seriesReadPerm = ""
seriesWritePerm = ""

# Various other options
[miscellaneous]
# Whether a new series should be created if the given one does not exist yet
# Default: false
createNewSeriesIfItDoesNotYetExist = true
Arnei commented 1 year ago

BBB Version: BigBlueButton Server 2.6.1 (1074)

I can locate a video-0.m4v file.

I've also set my server to develop.opencast.org and used the fast workflow.

dennis531 commented 1 year ago

Oh, I wrongly understood that the new format does not work. The code of the old format should be nearly untouched. Maybe your BBB is not configured correctly. I received my BBB test system from Timo.

@tibroc Have you seen the mentioned error before?

dennis531 commented 1 year ago

I tested the recordings again on my bbb test server and both formats worked. Could you please provide the logs on your test bbb test server? You can get the logs with journalctl -u bbb-rap-*. The logs for the scripts are located under /var/log/bigbluebutton/post_publish.log.

The journalctl logs should look like: image

The post_publish.log should look like: image

dennis531 commented 1 year ago

Finally, I found the problem. The processing scripts for presentation were disabled by the command sudo bbb-record --disable presentation in https://github.com/elan-ev/bbb_oc_integration/blob/main/tasks/post_archive.yml#L47-L50. After enabling the scripts with sudo bbb-record --enable presentation both files will be processed by opencast without errors.

I am wondering why BBB is running the post_publish script with presentation as argument when presentationscripts are disabled.

Arnei commented 1 year ago

Finally, I found the problem. The processing scripts for presentation were disabled by the command sudo bbb-record --disable presentation in https://github.com/elan-ev/bbb_oc_integration/blob/main/tasks/post_archive.yml#L47-L50. After enabling the scripts with sudo bbb-record --enable presentation both files will be processed by opencast without errors.

I am wondering why BBB is running the post_publish script with presentation as argument when presentationscripts are disabled.

Nice, good find. Maybe add a note about it to the PR, so that other users who like to try out by post-publish and post-archive have an easier time avoiding this problem?

dennis531 commented 1 year ago

I added a description of the problem in the pull request description.

Arnei commented 1 year ago

Ah, seems I worded that badly. What I was suggesting was adding it to the ReadMe. Best not to expect users will immediately find some old PR description.