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,
Extra-CMake-Modules
(ECM),
FFmpeg,
FreeType2,
Fontconfig,
GLib (with GObject
Introspection),
Jansson,
libdrm,
libva,
libxkbcommon,
Mbed-TLS-3.6.6,
OpenGL (libglvnd
or Mesa; Mesa's GL is not supported),
pciutils,
Qt-6,
SIMDe-0.8.2,
uthash-2.4.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
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_SKIP_INSTALL_RPATH=ON \
-D OBS_VERSION_OVERRIDE="32.1.2" \
-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 .. &&
ninjaNote
Normally for Meson and CMake projects, the build type is set to release.
However, doing so for OBS-Studio will cause it to have a segmentation
fault as CMake uses Interprocedural Optimization, or IPO, which conflicts
with the set build type in unexpected ways. The above setup lets CMake
figure it out as to not introduce conflicts.
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 OBS_VERSION_OVERRIDE="32.1.2": This
switch sets the OBS-Studio version properly, which is otherwise set
at 0.
-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.