diff --git a/mod/core/Dockerfile b/mod/core/Dockerfile index d755859..67b36ec 100644 --- a/mod/core/Dockerfile +++ b/mod/core/Dockerfile @@ -39,9 +39,10 @@ RUN equivs-control redis-server.control \ RUN apt-get update && apt-get install -y bbb-web \ bbb-fsesl-akka bbb-apps-akka bbb-transcode-akka bbb-apps \ - bbb-apps-video bbb-apps-screenshare bbb-apps-video-broadcast + bbb-apps-video bbb-apps-screenshare bbb-apps-video-broadcast \ + bbb-record-core bbb-playback-presentation -# -- avoid blocking java +# -- avoid blocking java # https://github.com/bigbluebutton/bigbluebutton/issues/8959 RUN sed -i 's|securerandom.source=file:/dev/random|securerandom.source=file:/dev/urandom|g' /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security @@ -65,6 +66,8 @@ COPY bbb-apps-akka/application.conf /usr/share/bbb-apps-akka/conf/application.co COPY bbb-fsesl-akka/application.conf /etc/bbb-fsesl-akka/application.conf COPY bbb-transcode-akka/application.conf /etc/bbb-transcode-akka/application.conf COPY web-run.sh /usr/share/bbb-web/run-prod.sh +COPY bbb-playback-presentation/presentation.yml /usr/local/bigbluebutton/core/scripts/ +RUN mkdir -p /usr/src/bbb-playback-presentation && cp -r /var/bigbluebutton/playback /usr/src/bbb-src-playback COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY entrypoint.sh /entrypoint.sh @@ -74,4 +77,3 @@ RUN mkdir -p /var/log/supervisor ENTRYPOINT ["/entrypoint.sh"] CMD [] - diff --git a/mod/core/bbb-playback-presentation/presentation.yml b/mod/core/bbb-playback-presentation/presentation.yml new file mode 100644 index 0000000..19973ce --- /dev/null +++ b/mod/core/bbb-playback-presentation/presentation.yml @@ -0,0 +1,20 @@ +video_output_width: 640 +video_output_height: 480 +# Alternate output size to use when deskshare videos are present +# Set higher so that deskshare output is higher quality, but uses more space. +deskshare_output_width: 1280 +deskshare_output_height: 720 +# offset applied to audio in the output video file +# audio_offset = 1200 means that the audio will be delayed by 1200ms +audio_offset: 0 +include_deskshare: true + +# For PRODUCTION +publish_dir: /var/bigbluebutton/published/presentation +video_formats: +- webm +# - mp4 + +# For DEVELOPMENT +#publish_dir: /home/ubuntu/temp/published/presentation + diff --git a/mod/core/entrypoint.sh b/mod/core/entrypoint.sh index bb06ca8..0ac1b6f 100755 --- a/mod/core/entrypoint.sh +++ b/mod/core/entrypoint.sh @@ -17,6 +17,9 @@ mkdir -p /var/bigbluebutton/unpublished # -- fix directory permissions chown -R bigbluebutton:bigbluebutton /var/bigbluebutton +# add playback-presentation to /var/bigbluebutton volume +cp -r /usr/src/bbb-src-playback /var/bigbluebutton/playback + dockerize \ -template /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl:/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties \ -template /usr/share/bbb-apps-akka/conf/application.conf.tmpl:/usr/share/bbb-apps-akka/conf/application.conf \ diff --git a/mod/core/supervisord.conf b/mod/core/supervisord.conf index 2a581a5..cc40b52 100644 --- a/mod/core/supervisord.conf +++ b/mod/core/supervisord.conf @@ -43,4 +43,47 @@ stdout_logfile_maxbytes=0 stderr_logfile=/dev/fd/2 stderr_logfile_maxbytes=0 +[program:rap-archive-worker] +command=/usr/local/bin/prefix-log /usr/local/bin/recorder-monitor.py --event archive +user=bigbluebutton +directory=/usr/local/bigbluebutton/core/scripts +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/fd/2 +stderr_logfile_maxbytes=0 +[program:rap-events-worker] +command=/usr/local/bin/prefix-log /usr/local/bin/recorder-monitor.py --event events +user=bigbluebutton +directory=/usr/local/bigbluebutton/core/scripts +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/fd/2 +stderr_logfile_maxbytes=0 + +[program:rap-process-worker] +command=/usr/local/bin/prefix-log /usr/local/bin/recorder-monitor.py --event process +user=bigbluebutton +directory=/usr/local/bigbluebutton/core/scripts +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/fd/2 +stderr_logfile_maxbytes=0 + +[program:rap-publish-worker] +command=/usr/local/bin/prefix-log /usr/local/bin/recorder-monitor.py --event publish +user=bigbluebutton +directory=/usr/local/bigbluebutton/core/scripts +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/fd/2 +stderr_logfile_maxbytes=0 + +[program:rap-sanity-worker] +command=/usr/local/bin/prefix-log /usr/local/bin/recorder-monitor.py --event sanity +user=bigbluebutton +directory=/usr/local/bigbluebutton/core/scripts +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/fd/2 +stderr_logfile_maxbytes=0 diff --git a/mod/core/web/bigbluebutton.properties b/mod/core/web/bigbluebutton.properties index 03b2575..d7893b8 100644 --- a/mod/core/web/bigbluebutton.properties +++ b/mod/core/web/bigbluebutton.properties @@ -19,7 +19,7 @@ # # These are the default properites for BigBlueButton Web application -# Default loglevel. +# Default loglevel. appLogLevel=DEBUG #---------------------------------------------------- @@ -189,18 +189,18 @@ userInactivityThresholdInMinutes=30 # warning before being logged out. userActivitySignResponseDelayInMinutes=5 -# Disable recording by default. +# Disable recording by default. # true - don't record even if record param in the api call is set to record # false - when record param is passed from api, override this default -disableRecordingDefault=true +disableRecordingDefault=false # Start recording when first user joins the meeting. # For backward compatibility with 0.81 where whole meeting -# is recorded. +# is recorded. autoStartRecording=false # Allow the user to start/stop recording. -allowStartStopRecording=false +allowStartStopRecording=true # Allow webcams streaming reception only to and from moderators webcamsOnlyForModerator=false diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index 6a4bda0..0b20696 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -105,11 +105,11 @@ public: cameraProfiles: - id: low name: Low quality - default: false + default: true bitrate: 100 - id: medium name: Medium quality - default: true + default: false bitrate: 200 - id: high name: High quality @@ -130,7 +130,7 @@ public: clearUsersInSeconds: 180 pongTimeInSeconds: 15 allowOutsideCommands: - toggleRecording: false + toggleRecording: true toggleSelfVoice: false poll: enabled: true