The following is the GNU All-permissive License as recommended in https://www.gnu.org/licenses/license-recommendations.en.html

Copyright (C) 2024 Free Software Foundation sysadmin@fsf.org

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.

Contributions are welcome. See https://savannah.gnu.org/maintenance/fsf/.

OBS Studio (formerly Open Broadcaster Software)

Installing through PPA on Trisquel

Official obs-studio PPA

sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update
sudo apt install -y obs-studio

You may need additional dependencies. If you need to pin additional packages, see the relevant chromium apt pinning script on brains.

Streaming to Icecast

Related reference: https://epir.at/2018/03/08/obs-icecast-streaming/

Profile Configuration

Enable Studio Mode button.

File > Settings

Below is a full list of settings on that page, if anything else appears in a newer version, add it to the list.

General

Check Hide cursor over projectors

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@live-master.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
  • Video Bitrate: 1500 Kbps
  • Keyframe interval (frames): 60
  • Rescale Output: greyed out, not settable.
  • Show all codecs (even if potentially incompatible): checked
  • Video Encoder: libvpx
  • Video Encoder Settings (if any): quality=realtime threads=2 error-resilient=1 For vp9, which we will test in LP2024: quality=realtime threads=4 row-mt=1 tile-columns=2 frame-parallel=1 WARNING: trailing spaces cause silent errors. Anytime you alter these settings, watch the output of: obs | grep -i failed perhaps future av1: usage=realtime cpu-used=7 threads=4 tiles=2x2 row-mt=1 ** background notes: man ffmpeg-codecs says -g is group of picture size, but online sources call it the "keyframe interval." In vp9, at roughly > 2 seconds worth of frames, it starts to increase latency at a corresponding rate. If cpu struggles, adjust cpu-used upward, max is 8 which uses the lowest cpu.
  • 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

Hotkeys

  • Start Recording: F9
  • Stop Recording: F9
  • Transition: F8
  • BBB Capture Switch to scene: Super + 1
  • Interlude Switch to scene: Super + 2
  • Technical Difficulties Switch to scene: Super + 3
  • Prerecord Switch to scene: Super + 4
  • Desktop Audio Mute: F7
  • Desktop Audio Unmute F7

Scene Configuration

Config files are in /home/common/sysadmin/lp22/optLP-2022.tar.gz

Extract folder contents to /opt/LP/

Scene Collection > Import

Click on the ... button. Navigate to /opt/LP/LP2022scenes.json and click on the Open button.

Click on the Import button.

`Scene Collection > LP2022

In BBB Capture scene, double click on Window Capture and set it to your web browser that is on your other monitor.

Capturing non-fullscreen window

In the xcompsoite settings, top y: 74 pixels to remove the menubar.

Streaming

Start with the Interlude scene. Change the text in /opt/LP/text.txt to introduce your next talk.

To stream, use the recording button, not the streaming button. This can be set as a hotkey.

Queue up your BBB capture scene and transition when the time is right.

Say to the room, "I am going to count down from 5 and then you will be live. Wait another few seconds before you begin. 5-4-3-2-1- You're live!" Unmute Desktop Audio with F7. Transition with F8.

To avoid the "You are now muted" clip and to remove the distraction of the streaming room audio stream for the speakers, mute your mic with pavucontrol.

Removing the LP logo during stream

If the logo in the top-right is covering someone's face in a panel or something like that, you can remove it live.

Right-click on the current scene, select the Duplicate scene, keep the name the same and add without logo at the end, click on the eye icon beside logo and then transition to the new scene.

Prerecorded videos

Test prerecorded videos before starting the stream for the day.

At this time, you cannot preview and correct the video dimensions until the video is playing live. If the video is the wrong dimensions such as only showing the top-left portion of the video, queue up the same scene that is playing and you will have the red box that can be resized, correct the display size, and then transition to the same scene. Luckily this only takes a few seconds and continues to play the video.

Things that caused problems

In 2022, using i3 wm: having source of "Screen Capture (XSHM)" caused video chop. Instead, use Windows Capture (Xcomposite)