OBS Studio
OBS Studio is free software for video recording and live streaming.
Built with Qt, C and C++ and maintained by the OBS Project, the software provides real-time device capture, scene composition, recording, broadcasting and source capture functions with presets for streaming to popular services such as YouTube, Twitch, Instagram and Facebook[1].
In 2014, development started on a rewrite of the software, known as OBS Multiplatform, which included a larger feature set, multi-platform support and broader plugin support[2]. As of 2016, the software was rebranded as OBS Studio, with the older OBS Classic being deprecated.[3]
Installation
USE flags
USE flags for media-video/obs-studio Software for Recording and Streaming Live Video Content
+alsa
|
Add support for media-libs/alsa-lib (Advanced Linux Sound Architecture) |
+ssl
|
Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security) |
browser
|
Enable browser source support via (precompiled) CEF. |
decklink
|
Build the Decklink plugin. |
fdk
|
Build with LibFDK AAC support. |
jack
|
Add support for the JACK Audio Connection Kit |
lua
|
Enable Lua scripting support |
mpegts
|
Enable native SRT/RIST mpegts output. |
nvenc
|
Add support for NVIDIA Encoder/Decoder (NVENC/NVDEC) API for hardware accelerated encoding and decoding on NVIDIA cards (requires x11-drivers/nvidia-drivers) |
pipewire
|
Build with PipeWire support. |
pulseaudio
|
Add sound server support via media-libs/libpulse (may be PulseAudio or PipeWire) |
python
|
Build with scripting support for Python 3. |
qsv
|
Build with Intel Quick Sync Video support. |
sndio
|
Build with sndio support. |
speex
|
Build with Speex noise suppression filter support. |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
test-input
|
Build and install input sources used for testing. |
truetype
|
Add support for FreeType and/or FreeType2 fonts |
v4l
|
Enable support for video4linux (using linux-headers or userspace libv4l libraries) |
vlc
|
Build with VLC media source support. |
wayland
|
Enable dev-libs/wayland backend |
websocket
|
Build with WebSocket API support. |
For a standard streaming setup that uses a webcam, PulseAudio, has a NVIDIA graphics card and integrates with major streaming services one might add to /etc/portage/package.use :
media-video/obs-studio lua nvenc pulseaudio speex v4l
Emerge
Install media-video/obs-studio:
root #
emerge --ask media-video/obs-studio
Additional software
Audio
OBS Studio can be paired with JACK, Pulseaudio or PipeWire for audio.
VLC
OBS Studio supports integration with VLC media player services. VLC support behaves much like the ordinary media source, however in addition it accepts a list of files to play as well as provides a way to play every path, URL or media source that VLC is able to play.
Usage
Invocation
OBS Studio can be invoked from the command line as follows:
user $
obs --help
--help, -h: Get list of available commands. --startstreaming: Automatically start streaming. --startrecording: Automatically start recording. --startreplaybuffer: Start replay buffer. --startvirtualcam: Start virtual camera (if available). --collection <string>: Use specific scene collection. --profile <string>: Use specific profile. --scene <string>: Start with specific scene. --studio-mode: Enable studio mode. --minimize-to-tray: Minimize to system tray. --portable, -p: Use portable mode. --multi, -m: Don't warn when launching multiple instances. --verbose: Make log more verbose. --always-on-top: Start in 'always on top' mode. --unfiltered_log: Make log unfiltered. --disable-updater: Disable built-in updater (Windows/Mac only) --disable-high-dpi-scaling: Disable automatic high-DPI scaling --version, -V: Get current version.
Removal
Unmerge
Remove media-video/obs-studio:
root #
emerge --ask --depclean --verbose media-video/obs-studio
Troubleshooting
Wayland
If OBS Studio isn't able to capture windows or the fullscreen using Pipewire on a Wayland compositor, set the pipewire
and dbus
USE flags for media-video/obs-studio and media-video/pipewire respectively:
media-video/obs-studio pipewire
media-video/pipewire dbus
Re-emerge these packages to apply the USE flag changes:
root #
emerge --ask media-video/obs-studio media-video/pipewire
Emerge gui-libs/xdg-desktop-portal-wlr:
root #
emerge --ask gui-libs/xdg-desktop-portal-wlr
This applies to window managers. If you're using a desktop environment such as KDE Plasma or GNOME, make sure to emerge the appropriate variant from the XDG/xdg-desktop-portal page instead.
The screencast
and gstreamer
and gles2
global use flags may also be required for some desktop environments.
USE="screencast gstreamer gles2"
You may also need the package qtwebkit
:
root #
emerge --ask dev-qt/qtwebkit
Virtual camera
For virtual camera support within OBS Studio, emerge the v4l2loopback kernel module:
root #
emerge --ask media-video/v4l2loopback
For OBS Studio to initialize the kernel module, give it the appropriate permissions, this can be done by running it as root or using a polkit agent.
External Resources
- OBS Tutorials - Tips and tricks for OBS Studio.
- OBS Project - The OBS Project main site.
- OBS Documentation - Detailed information for developers and users alike.
References
- ↑ http://www.pcgamer.com/2012/12/04/how-to-set-up-open-broadcaster-a-free-lightweight-livestreaming-application/
- ↑ https://web.archive.org/web/20160309230843/https://obsproject.com/index
- ↑ https://obsproject.com/forum/threads/obs-classic-is-no-longer-supported-heres-how-to-easily-switch-to-obs-studio.55820/