OBS-Studio-31.0.3

Introduction to OBS Studio

OBS Studio is a screen recorder that can be piped to various media containers and remote servers. It is geared towards streaming but also has a very much supported general recording usecase.

[Note]

Note

This may take a while to build. Feel free to do something else while this is building.

Additional Downloads

OBS Studio Dependencies

Required

alsa-plugins, CMake, cURL, FFmpeg, FreeType2, Fontconfig, GLib2 (with GObject Introspection), jansson-2.14.1, libdrm, libva, libxkbcommon, Mbed-TLS-3.6.3, OpenGL (libglvnd or Mesa; only the normal installation is required for either), pciutils, Qt-6, uthash-2.3.0, Vulkan-Loader, Xorg Libraries, and x264

Recommended

[Note]

Note

The options to disable the functionality enabled by the dependencies above are in the Command Explanations.

Optional

Jack2, libajantv2, librist, librnnoise (if not installed, an internal copy will be used), and sndio

Installation of OBS Studio

Fix building with GCC-15.x.x:

sed '/^#include <cmath>/a #include <cstdint>' \
  -i deps/json11/json11.cpp

Apply a patch to allow EGL libraries from Mesa:

patch -Np1 -i ../obs-studio-31.0.3-allow_mesa.patch

If you want to enable browser support, ensure you have downloaded the recommended download, then unpack it:

tar -xf ../cef_binary_6533_linux_x86_64.tar.xz &&
mv cef_binary_6533_linux_x86_64 cef-6533

Install OBS Studio by running the following commands:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr             \
      -D CMAKE_BUILD_TYPE=Release              \
      -D CMAKE_SKIP_INSTALL_RPATH=ON           \
      -D ENABLE_BROWSER=ON                     \
      -D CEF_ROOT_DIR=../cef-6533              \
      -D ENABLE_AJA=OFF                        \
      -D ENABLE_JACK=OFF                       \
      -D ENABLE_NEW_MPEGTS_OUTPUT=OFF          \
      -D OBS_COMPILE_DEPRECATION_AS_WARNING=ON \
      -G Ninja -Wno-dev .. &&

ninja

Now, as the root user:

ninja install

Command Explanations

-D CMAKE_SKIP_INSTALL_RPATH=ON: This switch makes cmake remove hardcoded library search paths (rpath) when installing a binary executable file or a shared library. This package does not need rpath once it's installed into the standard location, and rpath may sometimes cause unwanted effects or even security issues.

-D ENABLE_BROWSER=ON: This switch enables browser support.

-D CEF_ROOT_DIR=../cef-6533: This switch tells the build system where the CEF binaries are located.

-D ENABLE_AJA=OFF: This switch disables the optional Aja functionality.

-D ENABLE_JACK=OFF: This switch disables the optional Jack2 functionality.

-D ENABLE_NEW_MPEGTS_OUTPUT=OFF: This switch disables the optional MpegTS Output functionality.

-D ENABLE_PIPEWIRE=OFF: Disables Pipewire support if you have not installed it.

-D ENABLE_SPEEXDSP=OFF: Disables Speex support if you have not installed it.

-D ENABLE_WEBRTC=OFF: Disables WebRTC support if you have not installed the recommended dependencies.

-D ENABLE_WEBSOCKET=OFF: Disables WebSocket support if you have not installed the recommended dependencies.

-D ENABLE_V4L2=OFF: Disables V4L2 support if you have not installed the recommended dependencies.

-D ENABLE_VLC=OFF: Disables VLC support if you have not installed the recommended dependencies.

-D ENABLE_NVENC=OFF -D ENABLE_NVENC_FFMPEG_IDS=OFF: These options disable NVIDIA hardware encoding support if you have not installed the recommended dependencies.

-D ENABLE_QSV11=OFF: Disables Intel QSV11 hardware encoding support if you have not installed the recommended dependencies.

-D ENABLE_SCRIPTING=OFF: Disables scripting support if you have not installed the recommended dependencies.

-D OBS_COMPILE_DEPRECATION_AS_WARNING=ON: This ensures there are no build failures due to deprecated features in the FFmpeg side being used.

Contents

Installed Programs: obs and obs-ffmpeg-mux
Installed Libraries: libobs-frontend-api, libobs-opengl, libobs-scripting, libobs, and many plugins in /usr/lib/obs-plugins
Installed Directories: /usr/include/obs, /usr/lib/cmake/{libobs,obs-frontend-api,obs-websocket-api}, /usr/lib/obs-plugins, /usr/lib/obs-scripting, and /usr/share/obs

Short Descriptions

obs

is the OBS Studio program

obs-ffmpeg-mux

is the FFmpeg multiplexer that obs uses

libobs-frontend-api

contains API functions for the OBS Studio frontend

libobs-opengl

provided OpenGL rendering functions for OBS Studio

libobs-scripting

provides functions for OBS Studio scripts

libobs

contains all the functions used by OBS Studio and its plugins