Debian OBS Studio Build Mini-HOWTO

jebba

Member
Hello humans,

Below is a mini HOWTO build OBS Studio using Debian stable (version 12/Bookworm) using some latest/greatest versions by adding the Deb Multimedia repo. This includes a newer FFMPEG and other libraries.

First the Deb Multimedia repo needs to be installed (Note: this may include some non-free software, but I don't think so).
Install Deb Multimedia Keyring:

Bash:
wget https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb
sudo dpkg -i deb-multimedia-keyring_2016.8.1_all.deb

Add a new source for APT:

Bash:
sudo $(EDITOR) /etc/apt/sources.list.d/deb-multimedia.list

Add these lines for the new repo:

Bash:
deb http://www.deb-multimedia.org bookworm main
#deb http://www.deb-multimedia.org bookworm main non-free
deb http://www.deb-multimedia.org bookworm-backports main

Then update your system with newer packages from the Deb Multimedia repo:

Bash:
sudo apt update
sudo apt upgrade

Perhaps also:

Bash:
sudo apt upgrade -t bookworm-backports

Install the OBS Studio build dependencies, now that the Deb Multimedia repo is available.

Bash:
sudo apt install build-essential ccache clang clang-format cmake cmake-curses-gui curl fdkaac fonts-noto \
  fonts-roboto git glslang-dev glslang-tools glslc libasio-dev libasound2-dev libavcodec-dev libavdevice-dev \
  libavfilter-dev libavformat-dev libavutil-dev libcmocka-dev libcurl4-openssl-dev libdrm-dev libfdk-aac-dev \
  libfontconfig-dev libfreetype6-dev libgl1-mesa-dev libgles2-mesa libgles2-mesa-dev libglu1-mesa-dev \
  libglvnd-dev libjack-jackd2-dev libjansson-dev libluajit-5.1-dev libmbedtls-dev libpci-dev libpulse-dev \
  libqrcodegencpp-dev libqt6svg6-dev librist-dev libshaderc-dev libsndio-dev libspeexdsp-dev \
  libsrt-openssl-dev libswresample-dev libswscale-dev libudev-dev libv4l-dev libva-dev libvlc-dev libvpl-dev \
  libwayland-dev libwebsocketpp-dev libx11-dev libx11-xcb-dev libx264-dev libxaw7-dev libxcb1-dev \
  libxcb-composite0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev \
  libxcb-util-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xinput-dev libxcb-xkb-dev libxcb-xtest0-dev \
  libxcomposite-dev libxinerama-dev libxkbcommon-x11-dev libxkbfile-dev libxres-dev libxss-dev libxtst-dev \
  libxv-dev ninja-build nlohmann-json3-dev pkg-config python3-dev qt6-base-dev qt6-base-private-dev \
  qt6-image-formats-plugins qt6-wayland swig zsh

If you want to use the browser plugin module, you need to get embedded Chrome. It is built from an ancient binary. Good luck rebuilding it from source. The binary that OBS Studio uses (afaik) is available at the link below. Later in the build you'll need to point at where you untarred the cef binary. For example, as user debian, in their home directory.

Bash:
cd
wget https://cdn-fastly.obsproject.com/downloads/cef_binary_5060_linux64.tar.bz2
tar xf cef_binary_5060_linux64.tar.bz2

Now onto actually getting OBS Studio....


Bash:
git clone --recursive https://github.com/obsproject/obs-studio
cd obs-studio

Find the particular branch or tag that you want:

Bash:
git branch -a
git tag -l | sort -V

Checkout the branch or tag, such as one of:

Bash:
git checkout master
git checkout 30.0.0-beta3
git checkout 29.1.3
git checkout 28.1.2

A bit heavy, but clean out, and update:

Bash:
git reset --hard HEAD
git clean -f -f
git pull
git submodule init
git submodule update

Clear our build directory, if there is one:

Bash:
rm -rf build

The repo is now setup, so configure the build. Change to suit to taste. Also update the update the cef binary path.

Bash:
cmake -S . -B build -G Ninja -DENABLE_PIPEWIRE=0 -DENABLE_BROWSER=1 -DLINUX_PORTABLE=0 -DENABLE_DECKLINK=0 \
  -DENABLE_JACK=1 -DENABLE_SERVICE_UPDATES=0 -DCEF_ROOT_DIR="/home/debian/cef_binary_5060_linux64" \
  -DBUILD_FOR_DISTRIBUTION=1 -DENABLE_ALSA=1 -DENABLE_LIBFDK=1 -DENABLE_PULSEAUDIO=0 \
  -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_SNDIO=0 -DENABLE_WEBRTC=1 -DOAUTH_BASE_URL="http://127.0.0.1" \
  -DCALM_DEPRECATION=ON -DX11_Xaw_INCLUDE_PATH="/usr/include/X11/Xaw" -DENABLE_AJA=1

If you want to go thru the build options more easily with a menu, ccmake (note extra "c") can do it, just use it instead of cmake, such as:

Bash:
ccmake -S . -B build -G Ninja -DENABLE_PIPEWIRE=0 -DENABLE_BROWSER=1 -DLINUX_PORTABLE=0 -DENABLE_DECKLINK=0 \
  -DENABLE_JACK=1 -DENABLE_SERVICE_UPDATES=0 -DCEF_ROOT_DIR="/home/debian/cef_binary_5060_linux64" \
  -DBUILD_FOR_DISTRIBUTION=1 -DENABLE_ALSA=1 -DENABLE_LIBFDK=1 -DENABLE_PULSEAUDIO=0 \
  -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_SNDIO=0 -DENABLE_WEBRTC=1 -DOAUTH_BASE_URL="http://127.0.0.1" \
  -DCALM_DEPRECATION=ON -DX11_Xaw_INCLUDE_PATH="/usr/include/X11/Xaw" -DENABLE_AJA=1

Then in ccmake, hit "c" twice to get options. Hit "t" for more pages of options. Hit "g" to generate.

Compile it thusly. Nice to have ccache setup as it takes a pretty "long" time to build.

Bash:
cmake --build build -j$(nproc)

After the compile is done, make Debian packages:

Bash:
cmake --build build --target package -j$(nproc)

Then install the Debian package, adjusting to the version number built:

Bash:
ls -lh build/*.deb

sudo dpkg -i build/obs-studio-29.1.3-50-Linux.deb

Mark the package to be held, so it doesn't get upgraded over by the system package:

Bash:
sudo apt-mark hold obs-studio

Make sure all is happy with APT:

Bash:
sudo apt -f install

Then just run OBS Studio like normal (the binary gets put in /usr/bin):

Bash:
obs

Starting with version 30.0.0 (beta3 tested), you will need also do the following before building OBS Studio:

Bash:
sudo apt install libssl-dev
git clone --recursive https://github.com/paullouisageneau/libdatachannel
cd libdatachannel/
rm -rf build
cmake -B build -DUSE_GNUTLS=0 -DUSE_NICE=0 -DCMAKE_BUILD_TYPE=Release
cd build/
make -j$(nproc)
sudo make install

Happy hacking,

-Jeff
 
Last edited:

AaronD

Active Member
Is there an advantage to this over, say, Ubuntu Studio?

UStudio has a low-latency kernel, which makes a big difference, and bunch of media-related things pre-installed and "just working". An outdated version of OBS is one of them.
Then add OBS's official PPA, do the normal update procedure again, and you have the latest version of that. Then you can build your rig.
sudo apt-add-repository ppa:obsproject/obs-studio
 

jebba

Member
I haven't used Ubuntu Studio.

Debian stable "just works" with OBS Studio without changing anything, for most use cases. Just `apt install obs-studio` and it works just fine. It isn't *that* old. Most of the time the absolute latest isn't needed anyway. But if it is, I see Debian Testing already has the most recent one (29.1.3), so it looks like Debian is on top of it. I often run Debian "Testing" on systems--it is usually de facto quite stable. The unstable repo though can definitely get messy and have hard breakages (not that I've seen recently, but it happens afaik).

Realtime kernels are available in Debian, just `apt install linux-image-rt-amd64`, to get a "realtime" kernel (add "-rt"). I use this with OBS and JACK (audio).

Perusing Ubuntu Studio's page, they list Ardour and JACK and other applications that are already in Debian. I do my own build of Ardour too, fwiw, but Debian's works too. I guess I don't see much in Ubuntu Studio that I can't just do in Debian, but I just glanced through their site.
 

AaronD

Active Member
I was just looking at the problems I've had installing stuff in the past - undocumented dependencies that have to be sorted out myself, to name the biggest one - compared to having a team that's already done that AND loaded up a ton of tools that I didn't know I needed until the moment-of and there they were! (Ardour plugins...)

Seems like an awful lot less work to just take something that already works and has far more than I need. You're going to install the OS anyway, so that's the same either way, then just the one tweak for OBS, and you're good to go!
 

jebba

Member
If OBS Studio works for you, that's great! :) Building from source, such as above, is not the recommended option for most users. I tend to take the most difficult path possible (e.g. trying to get AJA Kona 4 + OBS working with Debian, kernel 6.5, nvidia gpu on ppc64le).
 

mondain

New Member
Great guide, but I just got stuck on a fresh new install of Debian 12 today; here is the output where I'm blocked:

Install the OBS Studio build dependencies, now that the Deb Multimedia repo is available.

Code:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libavcodec-dev : Depends: libavcodec60 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+1 is to be installed
 libavfilter-dev : Depends: libavfilter9 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+1 is to be installed
 libavformat-dev : Depends: libavformat60 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+1 is to be installed
 libavutil-dev : Depends: libavutil58 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+1 is to be installed
 libpostproc-dev : Depends: libpostproc57 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+1 is to be installed
 libswresample-dev : Depends: libswresample4 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+1 is to be installed
 libswscale-dev : Depends: libswscale7 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+1 is to be installed
 libx264-dev : Depends: libx264-164 (= 4:0.164.3107+gita8b68eb-dmo1) but 4:0.164.3191+git4613ac3-dmo0~bpo12+1 is to be installed
E: Unable to correct problems, you have held broken packages.
 

jebba

Member
It may be that ffmpeg related libraries have changed some names again.

I can point to a few things to help you resolve this. First, running this may give better insight into the issue:

Code:
sudo apt -f install

I also have some updated notes here, but you'd have to dig through the weeds a bit:


I am working on a much more complete documentation of my setup, but it is just in draft form. I don't have the OBS part done yet. Maybe I'll make some further progress someday. That is located here:


Attached to this post is a file "dpkg-list.txt" that has the current list of packages I have installed on by Debian 12.6 (bookworm) system I use for building OBS Studio. Perhaps using that as a reference will help you track down the issue.

Hope this helps and feel free to ping me with more questions if you have any!

Happy hacking,

-Jeff
 

Attachments

  • dpkg-list.txt
    377.4 KB · Views: 35

mondain

New Member
It may be that ffmpeg related libraries have changed some names again.

I can point to a few things to help you resolve this. First, running this may give better insight into the issue:

Code:
sudo apt -f install

I also have some updated notes here, but you'd have to dig through the weeds a bit:


I am working on a much more complete documentation of my setup, but it is just in draft form. I don't have the OBS part done yet. Maybe I'll make some further progress someday. That is located here:


Attached to this post is a file "dpkg-list.txt" that has the current list of packages I have installed on by Debian 12.6 (bookworm) system I use for building OBS Studio. Perhaps using that as a reference will help you track down the issue.

Hope this helps and feel free to ping me with more questions if you have any!

Happy hacking,

-Jeff
Thanks for the prompt response @jebba I'll dig into this tomorrow!
 

Unicorn-1

New Member
@jebba hey there thanks for posting this!

I went through everything and found some things I was able to resolve,

sudo apt install libfreetype6-dev
throws error because the repo was dropped, so replace with `libfreetype-dev` (which has been updated to replace libfreetype6-dev)

ffmpeg 6.1 or higher required to build from * master without specifying version (current defaults to latest beta 31.0.0-beta1)
solution was easy I chose the next previous 30.2.3 that builds with my ffmpeg 6.0.1 version,

however I hit a wall I cannot pass trying to build (on Raspberry Pi Compute Module CM4, Debian 12 Bookworm) with the omission of libvpl-dev, which is apparently only available for AMD processor. I have searched for a replacement or workaround (I'm sure there is a way, possibly reverse engineer and build an arm64 libvpl-dev from scratch maybe...) and nothing I am able find readily available or very much information about libvpl or libvpl-dev (regards to a substitute anyway). I read on another forum somewhere this is the holdup for others also trying to build from source on raspberry pi, yet supposedly it can be installed directly with pi-apps (doesn't run on my CM4 though) so it is possible... I wonder how sudo apt install obs-studio or pi-apps gets around the libvpl problem? and could those solutions be applied to the build dependencies?

I have every possible addition to package repos...

sudo apt-get update
Hit:1 http://http.kali.org/kali kali-rolling InRelease
Get:2 https://raw.githubusercontent.com/clockworkpi/apt/main/debian stable InRelease [5,408 B]
Get:3 https://pkgs.tailscale.com/stable/raspbian bookworm InRelease
Hit:4 http://http.re4son-kernel.com/re4son kali-pi InRelease
Hit:5 https://ftp.debian.org/debian bookworm InRelease
Get:6 https://ftp.debian.org/debian bookworm-updates InRelease [55.4 kB]
Hit:7 https://ftp.debian.org/debian bookworm-proposed-updates InRelease
Hit:8 https://ftp.debian.org/debian bookworm-backports InRelease
Hit:9 http://www.deb-multimedia.org bookworm InRelease
Hit:10 http://www.deb-multimedia.org bookworm-backports InRelease
Fetched 67.4 kB in 7s (9,464 B/s)
Reading package lists... Done

but the missing VPL not made as yet that I'm aware for arm64 doesn't seem available from any of them.

the build error verbose I see is:

CMake Error at /usr/share/cmake-3.30/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
Could NOT find VPL (missing: VPL_LIBRARY VPL_INCLUDE_DIR) (Required is at
least version "2.6")
Call Stack (most recent call first):
/usr/share/cmake-3.30/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
cmake/Modules/FindVPL.cmake:79 (find_package_handle_standard_args)
plugins/obs-qsv11/cmake/legacy.cmake:13 (find_package)
cmake/Modules/ObsHelpers.cmake:473 (include)
plugins/obs-qsv11/CMakeLists.txt:3 (legacy_check)
 

Unicorn-1

New Member
Update: removed build file and switched repo to version 29.1.3 and seem to have gotten past libvpl, only to hit another snag w browser, working on it...
 

EA7

New Member
Same here on a Pi 5 Bookworm - No Browser !
That's Debian for you. Perhaps the answer will be to install Ubuntu or another...
 

jebba

Member
Same here on a Pi 5 Bookworm - No Browser !
That's Debian for you. Perhaps the answer will be to install Ubuntu or another...

What do you mean by no browser? I see both firefox and chromium for ARM64 in debian. Or do you mean built into OBS? I haven't tried to build OBS for Pi.
 

sthames42

New Member
@jebba, Thank you for posting this excellent HOWTO.

I am building an unprivileged container (LXC) in Proxmox 8.4.1 running Debian 12.7 Standard and discovered the Browser source was not available with OBS Studio 29.0.2 installed from the default Debian repos. Following this guide, I ran into some issues but was able to solve them and build and install version 30.1.2 with Browser source.

Preparing to Build

The Deb Multimedia repo has been upgraded to version 2024.9.1 since this HOWTO was posted so I installed the latest and updated packages from it, as described in the original post.
Bash:
wget https://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2024.9.1_all.deb
sudo dpkg -i deb-multimedia-keyring_2024.9.1_all.deb

sudo bash -c "cat >/etc/apt/sources.list.d/deb-multimedia.list" <<EOF
deb http://www.deb-multimedia.org bookworm main
#deb http://www.deb-multimedia.org bookworm main non-free
deb http://www.deb-multimedia.org bookworm-backports main
EOF

sudo apt update -y
sudo apt upgrade -y

sudo apt upgrade -t bookworm-backports  # This is a problem (see below).

But when installing the packages required to build OBS, I ran into broken dependencies as described by @mondain:
Code:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libavcodec-dev : Depends: libavcodec60 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+3 is to be installed
 libavutil-dev : Depends: libavutil58 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+3 is to be installed
 libswresample-dev : Depends: libswresample4 (= 10:6.0.1-dmo0+deb12u1) but 10:6.1.2-dmo0~bpo12+3 is to be installed
 libvpl-dev : Depends: libvpl2 (= 2023.3.0-dmo1) but 1:2.13.0-1~bpo12+1 is to be installed
E: Unable to correct problems, you have held broken packages.

It turns this command needs to be run AFTER the build dependencies are installed. Not before.
Bash:
sudo apt upgrade -t bookworm-backports

Configuring the Build

After pulling the CEF Build and cloning the OBS repo, I followed these steps for each iteration of configuring the build:
Bash:
# Checkout the selected branch/tag.
git checkout <Version> --force

# Reset the tree.
# https://gist.github.com/nicktoumpelis/11214362?permalink_comment_id=5645874#gistcomment-5645874
git reset --hard
git submodule sync --recursive
git submodule update --init --force --recursive
git clean -ffdx
git submodule foreach --recursive git clean -ffdx

# Configure the build.
cmake -S . -B build -G Ninja -DENABLE_PIPEWIRE=0 -DENABLE_BROWSER=1 -DLINUX_PORTABLE=0 \
  -DENABLE_DECKLINK=0 -DENABLE_JACK=1 -DENABLE_SERVICE_UPDATES=0 \
  -DCEF_ROOT_DIR="/home/user/cef_binary_5060_linux64" \
  -DBUILD_FOR_DISTRIBUTION=1 -DENABLE_ALSA=1 -DENABLE_LIBFDK=1 -DENABLE_PULSEAUDIO=0 \
  -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_SNDIO=0 -DENABLE_WEBRTC=1 \
  -DOAUTH_BASE_URL="http://127.0.0.1" -DCALM_DEPRECATION=ON \
  -DX11_Xaw_INCLUDE_PATH="/usr/include/X11/Xaw" -DENABLE_AJA=1

First I tried the latest version, 31.1.0 as of this writing, but this resulted in an error in the build configuration:
Code:
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.28 or higher is required.  You are running version 3.25.1

I had to go back to version 30.2.3 of OBS to use the installed version of `cmake` since a later package version was not available and I did not want to compile it from source.

Then I ran into missing dependencies.
Code:
CMake Warning (dev) at cmake/Modules/FindUthash.cmake:55 (message):
  Failed to find uthash version.
Call Stack (most recent call first):
  libobs/cmake/legacy.cmake:23 (find_package)
  cmake/Modules/ObsHelpers.cmake:473 (include)
  libobs/CMakeLists.txt:3 (legacy_check)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Uthash (missing: Uthash_INCLUDE_DIR) (found version "0.0.0")

      Reason given by package: Ensure uthash library is available in local include paths.

To fix this, I needed:
Bash:
sudo apt install uthash-dev

But that wasn't enough:
Code:
CMake Warning (dev) at cmake/Modules/FindFFnvcodec.cmake:67 (message):
  Failed to find FFnvcodec version.
Call Stack (most recent call first):
  plugins/obs-ffmpeg/cmake/legacy.cmake:119 (find_package)
  cmake/Modules/ObsHelpers.cmake:473 (include)
  plugins/obs-ffmpeg/CMakeLists.txt:3 (legacy_check)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find FFnvcodec: Found unsuitable version "0.0.0", required range
  is "12.0.0.0...<12.2.0.0" (found FFnvcodec_INCLUDE_DIR-NOTFOUND)

      Reason given by package: Ensure FFnvcodec headers are available in local include paths.

For this, I needed:
Bash:
sudo apt install libffmpeg-nvenc-dev

But that did not install the required version for OBS 30.2.3:
Code:
CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find FFnvcodec: Found unsuitable version "11.1.5.2", required
  range is "12.0.0.0...<12.2.0.0" (found /usr/include)

      Reason given by package: Ensure FFnvcodec headers are available in local include paths.

Again, no package was available for the later version so I had to go back to version 30.1.2 of OBS to use the installed package.

Still not done, though:
Code:
CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find LibAJANTV2 (missing: AJA_LIBRARIES_INCLUDE_DIR AJA_NTV2_LIB)

This required:
Bash:
sudo apt install libajantv2-dev

But, still more:
Code:
CMake Error at plugins/obs-webrtc/cmake/legacy.cmake:9 (find_package):
  By not providing "FindLibDataChannel.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "LibDataChannel", but CMake did not find one.

  Could not find a package configuration file provided by "LibDataChannel"
  (requested version 0.20) with any of the following names:

    LibDataChannelConfig.cmake
    libdatachannel-config.cmake

  Add the installation prefix of "LibDataChannel" to CMAKE_PREFIX_PATH or set
  "LibDataChannel_DIR" to a directory containing one of the above files.  If
  "LibDataChannel" provides a separate development package or SDK, be sure it
  has been installed.

@jebba wrote in his original post that this package had to be built and installed manually:
Code:
cd ~
sudo apt install libssl-dev cmake
git clone --recursive https://github.com/paullouisageneau/libdatachannel
cd libdatachannel/
rm -rf build
cmake -B build -DUSE_GNUTLS=0 -DUSE_NICE=0 -DCMAKE_BUILD_TYPE=Release
cd build/
make -j $(nproc)
sudo make install
cd ~/obs-studio

Installation

Finally, I was able to compile, package, and install OBS:
Bash:
# Compile
cmake --build build -j$(nproc)

# Build package
cmake --build build --target package -j$(nproc)

# Install
ls -lh build/*.deb
sudo dpkg -i build/obs-studio-30.1.2-1-Linux.deb

I'm using XFCE as my desktop and everything installed correctly. The Browser source is available and working. The only other issue I ran into was when I tried the File->Show Recordings option in OBS and got no response. But, there was an error in `~/.xsession-errors`:
Code:
warning: Unable to detect a launcher for 'file:///home/user'

This required the `xdg-utils` package which had not been installed:
Bash:
sudo apt install xdg-utils -y

Conclusion

All in all, I'm pretty happy with this as everything is working. If any other issues arise, I will try and post the solutions,here.
 

sthames42

New Member
Just One More Thing

Just in case this is of use to someone, after my first failure with building the latest OBS version, I tried to build version 29.0.2, the version I could install from the Debian repo, to provide the Browser source option. I was able to configure the build but the compilation failed:
Code:
FAILED: plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/__/__/deps/media-playback/media-playback/decode.c.o
/usr/bin/ccache /usr/bin/cc -DENABLE_HEVC -DHAVE_OBSCONFIG_H -DNEW_MPEGTS_OUTPUT -Dobs_ffmpeg_EXPORTS -I/home/steve/obs-studio/build/config -I/home/steve/obs-studio/libobs -I/home/steve/obs-studio/deps/media-playback -I/home/steve/obs-studio/deps/opts-parser -O2 -g -DNDEBUG -fPIC -Wextra -Wvla -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Werror-implicit-function-declaration -Wno-missing-braces -Wno-switch -mmmx -msse -msse2 -MD -MT plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/__/__/deps/media-playback/media-playback/decode.c.o -MF plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/__/__/deps/media-playback/media-playback/decode.c.o.d -o plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/__/__/deps/media-playback/media-playback/decode.c.o -c /home/steve/obs-studio/deps/media-playback/media-playback/decode.c
In file included from /home/steve/obs-studio/deps/media-playback/media-playback/decode.c:17:
/home/steve/obs-studio/deps/media-playback/media-playback/decode.c: In function 'mp_decode_init':
/home/steve/obs-studio/deps/media-playback/media-playback/decode.h:40:25: error: 'AV_CODEC_CAP_TRUNCATED' undeclared (first use in this function); did you mean 'AV_CODEC_CAP_HARDWARE'?
   40 | #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
      |                         ^~~~~~~~~~~~~~~~~~~~~~

This results from a change to FFMpeg for which there is a fix.

OBS version 29.1.2 builds and installs correctly.
 

stephematician

New Member
however I hit a wall I cannot pass trying to build (on Raspberry Pi Compute Module CM4, Debian 12 Bookworm) with the omission of libvpl-dev, which is apparently only available for AMD processor. I have searched for a replacement or workaround (I'm sure there is a way, possibly reverse engineer and build an arm64 libvpl-dev from scratch maybe...) and nothing I am able find readily available or very much information about libvpl or libvpl-dev (regards to a substitute anyway).

This is used by the qsv11 module in OBS, you can simply disable the module via `-DENABLE_QSV11=OFF` in the cmake build command. This means you won't be able to use the Intel QSV11 hardware encoder from OBS - but presumably there are other hardware encoders that will be available via ffmpeg for you - I hope!
 
Top