Building and installation
CMake build (development)
Dependencies
Install the development packages for:
- FFmpeg: libavformat, libavcodec, libavutil, libswscale
- Display: libx11, libxext, libxfixes, libgl1-mesa, libglew, libwayland, wayland-protocols, libdrm, libva, libva-drm, libva-x11, libegl, libgbm
- Font/OSD: libfreetype, libfontconfig
- Audio/MIDI: libasound, librtmidi
- Other: libsnappy, liblo (OSC), pkg-config, cmake
On Debian/Ubuntu you can install build dependencies used by the package:
sudo apt-get install \
cmake pkg-config \
libavformat-dev libavcodec-dev libavutil-dev libswscale-dev \
libx11-dev libxext-dev libxfixes-dev libxpm-dev libxv-dev libimlib2-dev \
libgl1-mesa-dev libglew-dev \
libfreetype6-dev libfontconfig1-dev \
libasound2-dev librtmidi-dev libsnappy-dev \
libwayland-dev wayland-protocols \
libdrm-dev libva-dev libva-drm2-dev libva-x11-2-dev \
libegl1-mesa-dev libgbm-dev liblo-dev python3
Exact package names may differ by distro; see debian/control in the repository for the list used by the Debian package.
Configure and build
git clone https://github.com/cuems/cuems-videocomposer.git
cd cuems-videocomposer
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install
By default the binary is installed under /usr/local. To install to /usr (e.g. to match the Debian layout):
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
NDI support (optional)
To enable NDI input:
- Install the NDI SDK for Linux (e.g. to
/opt/NDI SDK for Linux/). - Configure with NDI enabled and, if needed, the SDK path:
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_NDI=ON
# If NDI is not in the default path:
cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_NDI=ON -DNDI_SDK_DIR=/path/to/ndi-sdk
make -j$(nproc)
sudo make install
Without the NDI SDK, the build completes but NDI sources will not be available.
Running from the build directory
You can run the executable from build/ without installing (e.g. ./cuems-videocomposer). If NDI is enabled, ensure the NDI library can be found (e.g. set LD_LIBRARY_PATH to the NDI SDK lib directory, or use the install target which sets rpath when installed to the same prefix used at configure time).
Debian package
Prerequisites
- NDI SDK (optional but recommended for full feature set): place in
/opt/NDI SDK for Linux/or setNDI_SDK_DIRto the SDK root. If not present, the package still builds but without NDI support. - Build dependencies: install with
apt-get build-depif the package is in your apt sources, or install the list fromdebian/BUILD-INSTRUCTIONS.mdin the repository.
Build the package
From the repository root:
debuild -b -uc -us -nc
This produces a binary-only build (no source package), unsigned. For a full source+binary build:
debuild -us -uc
If the NDI SDK is not in the default location:
export NDI_SDK_DIR=/path/to/ndi-sdk
debuild -b -uc -us -nc
Output: ../cuems-videocomposer_<version>_amd64.deb (and related files).
Install the package
sudo dpkg -i ../cuems-videocomposer_*.deb
sudo apt-get install -f # resolve dependencies if needed
Full instructions and troubleshooting
For detailed steps, NDI compliance verification, and troubleshooting (missing NDI SDK, build deps, runtime library path), see debian/BUILD-INSTRUCTIONS.md in the repository.