LibrePlanet: Conference/2020/Streaming

From LibrePlanet
Jump to: navigation, search
Line 1: Line 1:
As a consequence of our bringing the conference online, the LibrePlanet 2020 streaming setup is a little bit different than the one we have used in [[LibrePlanet:Conference/2019/Streaming|past years]]. As we had a large number of remote speakers, we hosted our own [https://directory.fsf.org/wiki/Jitsi Jitsi] instance for remote speakers to connect to and enter a video "call" with the conference organizers. Some details of the Jitsi Meet configuration were tuned up to remove links to non-free services or proprietary browser download sites.
+
In each conference room was a desktop with [https://libreboot.org/docs/hardware/kgpe-d16.html librebooted ASUS KGPE-D16 motherboards].
  
A screen capture of this call was then simultaneously recorded by the FSF tech team, and streamed out to the world via [https://directory.fsf.org/wiki/Gstreamer Gstreamer] and [https://directory.fsf.org/wiki/Icecast Icecast]. An improved version of the script we used can be found here: https://vcs.fsf.org/?p=streamdesktop.git;a=summary
+
This machine streamed out to the world via OBS (Open Broadcaster Software) and [https://directory.fsf.org/wiki/Icecast Icecast]. Connected to it was a webcam and a mixer with microphones and loudspeakers connected.
  
Our three digital conference rooms all had similar streaming setups with the second monitor being broadcast with gstreamer to Icecast.  The desktops used [https://libreboot.org/docs/hardware/kgpe-d16.html librebooted ASUS KGPE-D16 motherboards].  If a talk was pre-recorded, it was played locally on the machine with [https://directory.fsf.org/wiki/Mpv mpv].  If a presenter had trouble sharing their screen with Jitsi to show their slides, the slides were stored locally ahead of time and controlled by the streamer as a backup solution.
+
If there was a pre-recorded video, it was played locally on the machine with [https://directory.fsf.org/wiki/Mpv 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:
 +
 
 +
<pre>
 +
#### 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`
 +
 
 +
</pre>

Revision as of 03:59, 17 July 2023

In each conference room was a desktop with librebooted ASUS KGPE-D16 motherboards.

This machine streamed out to the world via OBS (Open Broadcaster Software) and Icecast. Connected to it was a webcam and a mixer with microphones and loudspeakers connected.

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`