Linux platform

Prev Next

Introduction

Supported distributions

The only officially supported Linux distribution is Ubuntu.

The latest release requires Ubuntu 22.04 or newer.

(While Composer has successfully been used on other distributions - no official guidance or responsibility are given or held by the Composer team for the compatibility or functionality)

It is always recommended to install or upgrade to the latest version of Composer for stability, performance and feature availability.

If - for some reason - an older version is required. Please refer to the additional tabs below (for each segment).

Prerequisites

1 - System packages

The following packages must be installed in order to run Composer.

sudo apt-get update
sudo apt-get install dotnet-runtime-8.0 yasm gcc libunistring-dev libgnutls28-dev libvorbis-dev libx264-dev libx265-dev libfontconfig1-dev libssl-dev build-essential make cmake
sudo apt-get update
sudo apt-get install dotnet-runtime-6.0 yasm gcc libunistring-dev libgnutls28-dev libvorbis-dev libx264-dev libx265-dev libfontconfig1-dev build-essential make cmake

The following tools and libraries are all required by Composer.

2 - NVIDIA driver with CUDA support

Composer only works with NVIDIA graphic cards, and require CUDA support from the proprietary drivers.

NVidia GPU driver supporting Cuda 12.8:

You need at least Nvidia driver >=570.26 - which is shipped with the proprietary Nvidia drivers.

CLI-based install: sudo apt-get install nvidia-driver-570
GUI-based install: Open Software and Updates and install nvidia-driver-570 (or later)

NVidia GPU driver supporting Cuda 12.4:

You need at least Nvidia driver >=550.54.14 - which is shipped with the proprietary Nvidia drivers.

CLI-based install: sudo apt-get install nvidia-driver-550
GUI-based install: Open Software and Updates and install nvidia-driver-550 (or later)

NVidia GPU driver supporting Cuda 11.6:

You need at least Nvidia driver >=515 - which is shipped with the proprietary Nvidia drivers.

CLI-based install: sudo apt-get install nvidia-driver-515
GUI-based install: Open Software and Updates and install nvidia-driver-515 (or later)

3 - FFMPEG

Composer requires FFMPEG to work with specific library and codec support.

Non-free licenses

It is the responsibility of the user to acquire all necessary licenses for the below listed libraries and codecs.

wget https://github.com/FFmpeg/nv-codec-headers/releases/download/n12.1.14.0/nv-codec-headers-12.1.14.0.tar.gz
tar -xvf nv-codec-headers-12.1.14.0.tar.gz
cd nv-codec-headers-12.1.14.0
make
sudo make install
cd ..
git clone -b v1.5.3 --depth 1 https://github.com/Haivision/srt.git
cd srt
cmake .
make -j12
sudo make install
cd ..
rm -rf srt/
wget https://ffmpeg.org/releases/ffmpeg-6.1.tar.xz
tar -xvf ffmpeg-6.1.tar.xz
cd ffmpeg-6.1
./configure \
                                   --enable-libx264 \
                                   --enable-libx265  \
                                   --enable-gpl \
                                   --enable-libvorbis  \
                                   --enable-shared \
                                   --enable-gnutls \
                                   --enable-pic \
                                   --enable-ffplay \
                                   --enable-gnutls \
                                   --disable-stripping \
                                   --enable-libfontconfig \
                                   --enable-libfreetype \
                                   --enable-nvenc \
                                   --enable-libsrt
make -j 12
sudo make install
sudo ldconfig

Verify installation

Issuing the command ffmpeg should yield output like below

ffmpeg version 6.1 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 14 (Ubuntu 14.2.0-4ubuntu2)
  configuration: --enable-libx264 --enable-libx265 --enable-gpl --enable-libvorbis --enable-shared --enable-gnutls --enable-pic --enable-ffplay --enable-gnutls --disable-stripping --enable-libfontconfig --enable-libfreetype --enable-nvenc --enable-libsrt
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
sudo add-apt-repository ppa:savoury1/ffmpeg4
sudo apt-get update
sudo apt-get install ffmpeg
wget https://github.com/FFmpeg/nv-codec-headers/releases/download/n12.0.16.0/nv-codec-headers-12.0.16.0.tar.gz
tar -xvf nv-codec-headers-12.0.16.0.tar.gz
cd nv-codec-headers-12.0.16.0
make
sudo make install
cd ..
wget https://ffmpeg.org/releases/ffmpeg-5.1.3.tar.xz
tar -xvf ffmpeg-5.1.3.tar.xz
cd ffmpeg-5.1.3
./configure \
                                   --enable-libx264 \
                                   --enable-libx265  \
                                   --enable-gpl \
                                   --enable-libvorbis  \
                                   --enable-shared \
                                   --enable-gnutls \
                                   --enable-pic \
                                   --enable-ffplay \
                                   --enable-gnutls \
                                   --disable-stripping \
                                   --enable-libfontconfig \
                                   --enable-libfreetype \
                                   --enable-nvenc

make -j 12
sudo make install
sudo ldconfig

Verify installation

Issuing the command ffmpeg should yield output like below

ffmpeg version 5.1.3 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
  configuration: --enable-libx264 --enable-libx265 --enable-gpl --enable-libvorbis --enable-shared --enable-gnutls --enable-pic --enable-ffplay --enable-gnutls --disable-stripping --enable-libfontconfig --enable-libfreetype --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100

Using a different / preexisting FFMPEG installation

While not recommended (it is possible to adjust the path to ffmpeg in the .vindralcomposerruntime configuration file found in the application root path:

#On Linux, set the ffmpeg.rootpath variable to the installation path of your FFmpeg X.X installation

ffmpeg.rootpath="/path/to/ffmpeg/libs"

Installation

Vindral Composer is distributed as gzipped tar file (.tgz).

Extract the contents

tar xfvz VindralComposerRuntime-Linux.tgz

Run the application

./vindralcomposerruntime

Optional packages and third-party tools

Desktop Video - Decklink capture

If a Decklink capture card is to be used.

Please refer to https://www.blackmagicdesign.com/support/family/capture-and-playback

Object detection

Requires Composer R2 2025

The Object detection modules require at least Composer R2 2025.

In order to utilize Composer’s add-on object detection features, the following additional libraries are needed:

  1. Install CUDA ToolKit 12.8 for your Linux version

  2. Install cuDNN for your Linux version

  3. Restart your system.

Speech-to-text

Requires Composer R2 2025

The Speech-to-text optional module requires at least Composer R2 2025.

In order to utilize Composer’s add-on speech-to-text, the following additional libraries are needed:

  1. Install CUDA ToolKit 12.8 for your Linux version

  2. Restart your system.

TensorRT - Optimize models for speed

Requires Composer R3 2025

The TensorRT optional packages only work in conjunction with cuDNN and requires Composer R3 2025 (Cuda 12.8).

version="10.9.0.34-1+cuda12.8"
sudo apt-get install \
libnvinfer-bin=${version} \
libnvinfer-dev=${version} \
libnvinfer-dispatch-dev=${version} \
libnvinfer-dispatch10=${version} \
libnvinfer-headers-dev=${version} \
libnvinfer-headers-plugin-dev=${version} \
libnvinfer-lean-dev=${version} \
libnvinfer-lean10=${version} \
libnvinfer-plugin-dev=${version} \
libnvinfer-plugin10=${version} \
libnvinfer-samples=${version} \
libnvinfer-vc-plugin-dev=${version} \
libnvinfer-vc-plugin10=${version} \
libnvinfer10=${version} \
libnvonnxparsers-dev=${version} \
libnvonnxparsers10=${version} \
python3-libnvinfer-dev=${version} \
python3-libnvinfer-dispatch=${version} \
python3-libnvinfer-lean=${version} \
python3-libnvinfer=${version} \
tensorrt-dev=${version} \
tensorrt-libs=${version} \
tensorrt=${version}

sudo apt-mark hold \
libnvinfer-bin \
libnvinfer-dev \
libnvinfer-dispatch-dev \
libnvinfer-dispatch10 \
libnvinfer-headers-dev \
libnvinfer-headers-plugin-dev \
libnvinfer-lean-dev \
libnvinfer-lean10 \
libnvinfer-plugin-dev \
libnvinfer-plugin10 \
libnvinfer-samples \
libnvinfer-vc-plugin-dev \
libnvinfer-vc-plugin10 \
libnvinfer10 \
libnvonnxparsers-dev \
libnvonnxparsers10 \
python3-libnvinfer-dev \
python3-libnvinfer-dispatch \
python3-libnvinfer-lean \
python3-libnvinfer \
tensorrt-dev \
tensorrt-libs \
tensorrt

Ultralight - HTML renderer

If a HTML renderer is to be used, the following packages are required:

Ultralight requires Ubuntu 22+

Due to dependencies, Ultralight requires at least Ubuntu 22+ to work with Composer.

sudo apt-get install libgstreamer1.0-0 libgtk-3-dev

OpenBLAS - Face Detection

If the face detection module / function is to be used, the following packages are required:

sudo apt-get install libopenblas0
sudo apt-get install libopenblas-base

NDI support

To discover NDI sources, the following packages are required:

sudo apt-get install avahi-daemon

Updates

Composer does not have a predefined release schedule - but historically, there have been a few big releases per year.

The ambition is to avoid breaking changes, but it is always recommended that a clean install is performed when updating from one major release to another.

Please refer to the below checklist for backup and restoring content for a Composer update.

Be sure to backup;

  • All project files (.prj)

  • All media files (used within projects)

  • settings.xml

  • license.lic

FAQ

Nvidia-smi shows “No devices were found” after installation

This either means that the installation failed, or that conflicting kernels are found.

Try purging all nvidia-related packages and re-do the installation from the CLI:

sudo apt purge '*nvidia*'
sudo apt-get install nvidia-driver-xxx

Composer says no CUDA compatible device found

Double check that

a) nvidia-smishows output (or refer to the FAQ-entry above)

b) the correct driver and cuda version for the Composer version is installed. This page has several sections with different instructions based on the Composer version.

Missing or faulty FFMPEG installation

If Composer can not find the (correct version of, refer to the FFMPEG installation section) libraries an error will occur. Double check the FFMPEG installation instructions above.

If using a custom-compiled (not recommended) FFMPEG version; please consider following the instructions in this guide. It is possible to install and configure multiple FFMPEG versions (if absolutely necessary) and configure its rootpath in .vindralcomposerruntime (in the application root)