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
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
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.