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
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
- When using the Behringer U-CONTROL UCA222 USB audio device, it comes up as
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)