State of the Map/VideoStreaming

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page collects some information for people helping with the video streaming at State of the Map 2021.


Video Mixing Environment and Equipment Preparation

Required Software

  • Install a Nextcloud desktop client (you can use the browser version)
    • If you are on Debian 11 or a new Ubuntu you can use the nextcloud-desktop package (please note that the version that is part of Debian 10 (Stable/Buster) does not seem to work), else check the Nextcloud page.
    • Use the login provided by the video team.
    • During the first sync it will download about 10GB of video files.
    • During the conference it will download images to keep the break slides up to date, so please keep the client running.
  • Install obs-studio version 26.1.2
    • On Debian 11 or new Ubuntu versions you can just use their package with apt install.
    • Older versions should also work, but they might require some fiddling with the scenes to make everything work the way it should (especially the fading transition between the break slides seems to be a bit brittle, though not that important, either).

Profile and Scenes

The Nextcloud share contains an OBS directory with profile and scene for the streaming that you should import in OBS.

  • Unfortunately, when exporting scenes and profiles from OBS, it uses absolute paths to e.g. images and videos, so they will not work on your systems. For the scenes in SotM.json, you can use something like perl -pi -e 's{"[^"]*/Streaming/}{"<Path to your Nextcloud directory with the Streaming subdirectory>/Streaming/}' SotM.json (replace the part inside the <> including the <> with what it says) against a local copy of the SotM.json file to fix that.
  • Once imported in OBS (via "Scene Collection"/"Import" menu item), make sure you actually select the scene collection (via "Scene Collection"/"SotM" menu item), otherwise, the import has no effect.
  • Similarly for the profile, after the import (via "Profile"/"Import" menu item), make sure you also select it (via "Profile"/"SotM" menu item) and that you adapt the recording path (via "File"/"Settings"/"Output"/"Recording"/"Recording Path") to a directory on your local machine which has enough space to record the video of your shift.
  • The profile we provide uses hardware-accelerated encoding via VAAPI which may not work on your machine or result in suboptimal quality. You can change to a different encoder via "File"/"Settings"/"Output"/"Streaming"/"Encoder".
  • We're generally using the following settings for streaming, so in case you don't want or cannot use the provided profile, make sure you use these:
    • Base and output resolution of 1920x1080.
    • 30 frames per second
    • 5120 Kbps video bit rate
    • Use stream encoder for the recording with mkv for the container and generate file names without space.
    • No global audio devices
  • We would recommend to use the "Studio Mode" of OBS since that gives you a preview of the scene you're going to switch to.

Video Mixing Workflow

Before mixer shift start

  • Make sure you configured the correct streaming service.
  • Switch to the "BigBlueButton" scene
  • Prepare a browser window for BigBlueButton, join the room where the first talk of your shift will be held, hide sidebar and slides
    • While joining, there's a microphone test, during this test, make sure you see an audio level in the audio mixer of OBS
  • Select the browser window in the "BigBlueButton" scene's "BigBlueButton-Window" source
  • Cut off all the user interface elements of BigBlueButton, center the source in the scene
  • Record a few seconds to make sure the output directory exists and recording works
  • If your desktop environment supports something like a do-not-disturb mode, enable that, also consider closing all unnecessary applications and try to make sure there's nothing that might display a notification or emit sounds (especially while recording intro or Q&A since that will record desktop audio and a screen or at least a browser window).

On mixer shift start

  • Make sure the "Loop Player" scene is active in OBS
  • Coordinate with your predecessor when to switch the stream source (via Telegram, IRC or other means)
  • Start streaming and recording

Talk cycle

  • Before talk:
    • Select correct talk video in "Lecture Player" scene according to the schedule (and be aware of potential time zone differences)
    • Connect to correct BigBlueButton-room, hide sidebar and slides
    • Test with session host and speaker
    • Make sure only the session host and speaker(s) have their camera and microphone turned on
  • Talk start:
    • Notify session host and speaker you're about to cut to the BBB-room
    • Ensure Recording is enabled
    • Activate "BigBlueButton" scene for intro, make sure you see an audio level in OBS when people are talking
    • Activate "Lecture Player" scene after intro
    • Watch audio level, adjust if necessary – target is -12dB (sometimes yellow, but never red)
  • Talk end:
    • Notify session host and speaker you're about to cut to the BBB-room
    • Activate "BigBlueButton" scene for Q&A
    • Activate "Loop Player" scene after Q&A

For lightning talks, the workflow will be similar if we have moderation between the talks. If there's no moderation, you'll have to prepare for the next talk while the previous one is still running, but don't click on "Ok" until the previous talk has ended since that would start playing the next talk already.

On mixer shift end

  • Coordinate with your successor when to switch the stream source (via Telegram, IRC or other means)
  • Stop streaming and recording
  • Upload all recording(s) to the Nextcloud folder you got assigned