Fetching latest headlines…
Build OBS Studio 32.x from Source on Debian Trixie (13)
NORTH AMERICA
🇺🇸 United StatesJuly 4, 2026

Build OBS Studio 32.x from Source on Debian Trixie (13)

0 views0 likes0 comments
Originally published byDev.to

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

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

Qt6 UI Dependencies

sudo apt install \
qt6-base-dev \
qt6-base-private-dev \
qt6-svg-dev \
qt6-wayland \
qt6-image-formats-plugins

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

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

libdatachannel Dependencies

sudo apt install \
libssl-dev \
libsrtp2-dev

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

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

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

The CEF archive sometimes contains a polluted cache from the maintainer.

Remove it before configuring:

rm -rf build CMakeCache.txt

Compile the wrapper:

cmake -B build \
    -G Ninja \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo

cmake --build build --parallel $(nproc)

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

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

Compile OBS:

cmake --build build --parallel $(nproc)

Stage locale files, plugins, and CEF binaries:

cmake --install build

7. Run OBS

Launch OBS directly from the local build directory:

~/tmp/obs-studio/build/bin/obs

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-dev is installed.
  • Or compile with:
-DENABLE_FRONTEND_TOOLS=OFF

CEF Not Found

If CMake cannot locate CEF, verify that:

-DCEF_ROOT_DIR

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

Then repeat Step 6 to rebuild OBS.

Comments (0)

Sign in to join the discussion

Be the first to comment!