This guide walks through building OBS Studio (v32.1.2+) from source on Debian Trixie. It includes compiling support for:
- Browser Source (CEF)
- WebSocket
- WebRTC (libdatachannel)
- NVENC (NVIDIA SDK 12.2)
1. Install Build Dependencies
Install all required build tools, Qt6, FFmpeg, Wayland, and plugin dependencies.
Check out the obs-studio-wiki to confirm.
Base Build Tools
sudo apt install cmake extra-cmake-modules ninja-build pkg-config clang clang-format build-essential curl ccache git zsh
Enter fullscreen mode Exit fullscreen mode
Core OBS Dependencies
sudo apt install
libavcodec-dev
libavdevice-dev
libavfilter-dev
libavformat-dev
libavutil-dev
libswresample-dev
libswscale-dev
libx264-dev
libcurl4-openssl-dev
libmbedtls-dev
libgl1-mesa-dev
libjansson-dev
libluajit-5.1-dev
python3-dev
libx11-dev
libxcb-randr0-dev
libxcb-shm0-dev
libxcb-xinerama0-dev
libxcb-composite0-dev
libxcomposite-dev
libxinerama-dev
libxcb1-dev
libx11-xcb-dev
libxcb-xfixes0-dev
swig
libcmocka-dev
libxss-dev
libglvnd-dev
libgles2-mesa-dev
libwayland-dev
librist-dev
libsrt-openssl-dev
libpci-dev
libpipewire-0.3-dev
libqrcodegencpp-dev
uthash-dev
libsimde-dev
Enter fullscreen mode Exit fullscreen mode
Qt6 UI Dependencies
sudo apt install
qt6-base-dev
qt6-base-private-dev
qt6-svg-dev
qt6-wayland
qt6-image-formats-plugins
Enter fullscreen mode Exit fullscreen mode
Plugin Dependencies
sudo apt install
libasound2-dev
libfdk-aac-dev
libfontconfig-dev
libfreetype6-dev
libjack-jackd2-dev
libpulse-dev
libsndio-dev
libspeexdsp-dev
libudev-dev
libv4l-dev
libva-dev
libvlc-dev
libvpl-dev
libdrm-dev
nlohmann-json3-dev
libwebsocketpp-dev
libasio-dev
Enter fullscreen mode Exit fullscreen mode
Chromium / CEF Dependencies
Required for Browser Source.
sudo apt install
libnss3-dev
libatk1.0-dev
libatk-bridge2.0-dev
libcups2-dev
libxkbcommon-dev
libxdamage-dev
libxrandr-dev
libgbm-dev
libpango1.0-dev
libcairo2-dev
Enter fullscreen mode Exit fullscreen mode
libdatachannel Dependencies
sudo apt install
libssl-dev
libsrtp2-dev
Enter fullscreen mode Exit fullscreen mode
2. Build & Install NVENC Headers (NVIDIA GPUs)
OBS 32.x requires FFnvcodec.
If you’re using the Debian 550.x NVIDIA driver branch, use the sdk/12.2 branch to avoid runtime crashes.
cd ~/tmp
git clone -b sdk/12.2 https://github.com/FFmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install
Enter fullscreen mode Exit fullscreen mode
3. Build & Install libdatachannel (WebRTC)
Debian Trixie does not package the version required by OBS 32.x, so build v0.24.0 from source.
cd ~/tmp
git clone --branch v0.24.0 https://github.com/paullouisageneau/libdatachannel.git
cd libdatachannel
git submodule update --init --recursive
cmake -B build
-G Ninja
-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=ON
cmake --build build --parallel $(nproc)
sudo cmake --install build
sudo ldconfig
Enter fullscreen mode Exit fullscreen mode
4. Download and Compile CEF (Browser Source)
OBS requires the Chromium Embedded Framework (CEF).
Download the vanilla CEF package and compile the libcef_dll_wrapper library that OBS links against.
cd ~/tmp
wget https://cdn-fastly.obsproject.com/downloads/cef_binary_6533_linux_x86_64_v6.tar.xz
tar -xf cef_binary_6533_linux_x86_64_v6.tar.xz
cd cef_binary_6533_linux_x86_64/libcef_dll_wrapper
Enter fullscreen mode Exit fullscreen mode
The CEF archive sometimes contains a polluted cache from the maintainer.
Remove it before configuring:
rm -rf build CMakeCache.txt
Enter fullscreen mode Exit fullscreen mode
Compile the wrapper:
cmake -B build
-G Ninja
-DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build --parallel $(nproc)
Enter fullscreen mode Exit fullscreen mode
5. Clone OBS Studio
Clone OBS, fetch tags, and check out the stable 32.1.2 release.
cd ~/tmp
git clone --recursive https://github.com/obsproject/obs-studio.git
cd obs-studio
git fetch --all --tags
git checkout tags/32.1.2
git submodule update --init --recursive
Enter fullscreen mode Exit fullscreen mode
6. Configure and Build OBS
Configure OBS using Ninja.
This configuration:
- Enables Browser Source
- Enables WebSocket
- Disables the proprietary AJA plugin
- Uses the locally-built CEF
- Installs into the local build directory (no system-wide install)
cd ~/tmp/obs-studio
rm -rf build
cmake -B build
-G Ninja
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DCMAKE_INSTALL_PREFIX=$HOME/tmp/obs-studio/build
-DENABLE_BROWSER=ON
-DENABLE_WEBSOCKET=ON
-DENABLE_AJA=OFF
-DCEF_ROOT_DIR=$(pwd)/cef_binary_6533_linux_x86_64
Enter fullscreen mode Exit fullscreen mode
Compile OBS:
cmake --build build --parallel $(nproc)
Enter fullscreen mode Exit fullscreen mode
Stage locale files, plugins, and CEF binaries:
cmake --install build
Enter fullscreen mode Exit fullscreen mode
7. Run OBS
Launch OBS directly from the local build directory:
~/tmp/obs-studio/build/bin/obs
Enter fullscreen mode Exit fullscreen mode
Troubleshooting
frontend-tools failed to load
This is a known quirk in some source builds related to Python/Lua scripting paths.
If you don’t use Python scripts inside OBS, it can safely be ignored.
Otherwise:
- Ensure
python3-devis installed. - Or compile with:
-DENABLE_FRONTEND_TOOLS=OFF
Enter fullscreen mode Exit fullscreen mode
CEF Not Found
If CMake cannot locate CEF, verify that:
-DCEF_ROOT_DIR
Enter fullscreen mode Exit fullscreen mode
points exactly to the extracted CEF directory from Step 4.
Updating OBS
To upgrade later:
cd ~/tmp/obs-studio
git pull
git fetch --all --tags
git checkout <new-tag>
git submodule update --init --recursive
Enter fullscreen mode Exit fullscreen mode
Then repeat Step 6 to rebuild OBS.
답글 남기기