LibrePlanet: Conference/2023/Streaming

From LibrePlanet
Jump to: navigation, search

Each conference room was equipped with a desktop with librebooted ASUS KGPE-D16 motherboard for the FSF tech team and volunteers and a librebooted Lenovo T400 laptop for the presenters.

The desktop machine streamed out to the world via OBS Studio (Open Broadcaster Software) and Icecast. Connected to the desktop machine was a webcam, projector, and a mixer with a microphones and a loudspeaker connected.

The laptop's screen streamed to the desktop.

All of the devices were placed on the same local LAN with a hub.

If there was a pre-recorded video, it was played locally on the machine with mpv.

For remote speakers, we hosted our own BigBlueButton 1.9 instance for remote speakers to connect to and enter a video "call" with a computer. A screen capture of this call was then simultaneously streamed in OBS.

OBS Settings are listed below:

#### Output

##### Recording tab

Output Mode drop-down: `Advanced`

* Type: `Custom Output (FFmpeg)`
* FFmpeg Output Type: `Output to URL`
* File path or URL: `icecast://source:PASSWORD@example.fsf.org:8000/stream-room-NAME.webm`
  * Note: Password has an O as in Opal.  Not a zero.
* Container format: `webm`
* Muster settings (if any): `content_type=video/webm cluster_time_limit=5100 cluster_size_limit=2M`
* Video Bitrate: `1500 Kbps`
* Keyframe interval (frames): `150`
* Rescale Output: greyed out, not settable.
* Show all codecs (even if potentially incompatible): checked
* Video Encoder: `libvpx`
* Video Encoder Settings (if any): `rt cpu-used=5 threads=2 error-resilient=1 crf=30 g=150 minrate=1.5M maxrate=1.5M`
* Audio Bitrate: `96 Kbps`
* Audio Track: check mark on 1.
* Audio Encoder: `libvorbis`
* Audio Encoder Settings (if any): empty

#### Audio

* Desktop Audio: (Set to your output device such that you see sound levels when there is audio playing on your system)
  * When using the Behringer U-CONTROL UCA222 USB audio device, it comes up as `PCM2902 Audio Codec Analog Stereo`

#### Video

Base (Canvas) Resolution: `1280x720`

We modified the look of BigBlueButton with the Stylus browser extension.

For networking, we set up OpenVPN to tunnel to our streaming server, and we used the LibrePlanet:Conference/2023/Streaming/flip-network.sh script to switch between two network providers, in case one of our connections went down or provided reduced bandwidth.