Open Broadcaster Software

Related articles
FFmpeg
Screen capture#Screencast software
Open Broadcaster Software
(OBS) is an open source cross-platform video recording and live-streaming application. It provides an easy to pick up and extensible workflow with customizable scenes, volume mixers, transitions, filters and more.
Installation
Install
one of the following packages:
obs-studio
− latest OBS release.
obs-studio-browser
AUR
− builds all the features (in particular, support for a
browser source
) except Twitch, Restream and YouTube integrations.
obs-studio-tytan652
AUR
− builds all the features except Twitch, Restream and YouTube integrations while adding some unmerged PR or backported fixes.
Configuration
For easy configuration,
Tools > Auto-Configuration Wizard
can quickly set up base settings for both recording and live-streaming. The wizard auto-selects bitrate, resolution and encoder based on your hardware (and network connection if streaming was set up).
Hardware video acceleration
Hardware-accelerated encoding and decoding is best for performance, CPU/GPU usage and quality. The encoder can be changed in
Settings > Output > Streaming > Encoder
(may have to first set
Settings > Output > Output Mode
to
Advanced
). See
Hardware video acceleration
if a hardware encoder is not detected.
Recording output
By default, OBS will output recordings in the user's home path with spaces in the video filename and the same encoder selected for streaming. The output path, filesize, file format, filename style and more can be changed in
Settings > Output > Recording
.
Hotkeys
By default, OBS assigns no hotkeys. All hotkey pairs highlighted in red upon selection can use the same keybind for toggling the pair's function.
Virtual camera output
Starting from version 26.1, OBS supports virtual camera output on Linux. To use it, install
v4l2loopback
, then the
Start Virtual Camera
button will appear in OBS. If the
v4l2loopback
kernel module
is not loaded yet, OBS will automatically try to load it and ask for administrative privileges to do so (using
pkexec(1)
).
Wayland
Since OBS is a Qt application, see
Wayland#Qt
to make it work under Wayland. OBS has
upgraded from Qt 5 to Qt 6
since version 28, so installation of
qt6-wayland
is required for the newer versions. See
PipeWire#WebRTC screen sharing
to enable Wayland screen capture.
Global shortcuts
While Wayland applications can set up global shortcuts through the XDG desktop portal, OBS currently has no support for it
[1]
, meaning that the global shortcuts set in OBS only work when OBS is in focus.
Shortcuts via XDG desktop portal
The
obs-wayland-hotkeys
OBS plugin can be used to provide XDG desktop portal functionality. Install the
obs-wayland-hotkeys-git
AUR
package, and you should be prompted to register your global shortcuts when launching OBS.
Shortcuts via OBS WebSocket
OBS can be controlled through its WebSocket interface, which can be enabled in OBS by going to
Tools > WebSocket Server Settings
and selecting
Enable WebSocket server
.
The WebSocket password and port can be found in
WebSocket Server Settings > Show Connect Info
.
Note
obs-studio
needs the optional dependency
qrcodegencpp-cmake
to enable WebSocket support.
WebSocket clients:
obs-cmd
— OBS cli for obs-websocket v5
https://github.com/grigio/obs-cmd
||
obs-cmd
AUR
obs-websocket-py
— Python standalone script for OBS shortcuts
https://github.com/hirak99/obs-control
||
not packaged?
search in AUR
obsws-python
— Python SDK for OBS Studio WebSocket v5.0
https://github.com/aatikturk/obsws-python
||
python-obsws
AUR
Then depending on your environment bind WebSocket client commands to keyboard shortcuts - e.g. in
KDE Plasma
go to
System Settings > Shortcuts
to set a custom shortcut.
Tips and tricks
Browser source
The
obs-browser
plugin gives the ability to use a webpage within the canvas, typically for web-based overlays. The webpage can be interacted with and works like any other source type. The plugin is provided by the
obs-studio
package.
Capturing via Vulkan/OpenGL
The
obs-vkcapture
plugin adds the capability to capture
Vulkan
or
OpenGL
programs by hooking into those APIs directly, rather than using generic
Xorg
or
Wayland
window capture APIs. To use it,
install
obs-vkcapture
AUR
, as well as
lib32-obs-vkcapture
AUR
if capturing 32-bit applications. Follow the instructions in the GitHub repository to setup a
Game Capture
using the plugin.
Encoding using GStreamer
obs-gstreamer
is a project which provides:
An encoder plugin for using GStreamer for encoding.
Plugins for using a
GStreamer pipeline
as a source, video filter, or audio filter. This is an advanced capability intended for users familiar with GStreamer usage.
Note
Historically, the GStreamer VAAPI plugins performed better than their FFmpeg counterparts on AMD cards; with the introduction of
texture sharing
support, FFmpeg encoders are now equally performant
according to upstream
.
To use obs-gstreamer for encoding,
install
obs-gstreamer
AUR
(or
obs-vaapi
AUR
to get the standalone plugins) and change OBS' encoder to
VAAPI H.26x/VPx/AV1 on <device name>
. If OBS gives an error regarding encoders you might need to
install
the
gst-plugin-va
package.
Manual plugins installation
You can manually install plugin to the
~/.config/obs-studio/plugins/
. The folder structure is the following:
~/.config/obs-studio/plugins/plugin_name/bin/64bit/plugin_name.so
~/.config/obs-studio/plugins/plugin_name/data/locale/en-US.ini
Record rectangular area
If you use KDE, you can select rectangular area for the recording using the helper script
obs-rectangle-area-selector
.
Troubleshooting
QuickSync returns "Error creating a MFX session"
This error can occur if the right Intel QuickSync drivers are not installed.
[AVHWDeviceContext @ 0x6111a37c1040] Error creating a MFX session: -9.
Device creation failed: -1313558101.
To use QuickSync, install
intel-media-sdk
for Iron Lake (Gen5) to
Ice Lake (Gen10)
GPUs, or
vpl-gpu-rt
for
Tiger Lake (Gen11)
and newer GPUs.
For more information, refer to
FFmpeg#Intel QuickSync (QSV)
.
See also
OBS Wiki
Fixing The Missing OBS Features On Arch Linux