Transcoders¶
Installing transcoders for Perfect Streamer.
The following packages are available:
pstreamer-tcsw — transcoding on the CPU (Software).
pstreamer-tcnv — transcoding on an NVIDIA GPU.
pstreamer-tcivpl — transcoding on an Intel GPU (Intel VPL).
The main requirement is GLIBC version >= 2.28.
The transcoder runs on AlmaLinux 8.9. The Intel VPL transcoder runs on AlmaLinux 10 (RHEL 10) and Ubuntu 24.04 systems.
Which Intel hardware is suitable for transcoding, which runtimes and codecs are available on the different graphics generations, and how to check that the hardware has been recognized — see Intel VPL transcoder: supported hardware.
RHEL 8+¶
Install pstreamer.
For NVIDIA, install the repositories and update the system (if they have not already been installed):
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
sudo dnf clean all
sudo dnf update -y
reboot
NVIDIA Encoder.
Install CUDA:
sudo dnf -y install cuda-toolkit-12-5
Install the driver (choose an option):
Legacy
sudo dnf -y module install nvidia-driver:latest-dkms
New
sudo dnf -y module install nvidia-driver:open-dkms
After installation, be sure to reboot the machine:
reboot
After the reboot, check that the driver works:
nvidia-smi
modprobe nvidia
sudo lsmod | grep nvidia
or
modprobe nouveau
sudo lsmod | grep nouveau
Intel VPL Encoder.
Installing the Intel driver and Intel VPL (RHEL 10):
dnf install -y intel-gpu-firmware
dnf install -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm
dnf install -y intel-media-driver
dnf install -y intel-vpl-gpu-rt
Install the transcoder packages.
CPU Software method:
sudo dnf install -y pstreamer-tcsw
NVIDIA GPU:
sudo dnf install -y pstreamer-tcnv
Intel VPL GPU:
sudo dnf install -y pstreamer-tcivpl
Ubuntu 22/24¶
Install pstreamer.
NVIDIA Encoder.
Install CUDA toolkit version 12.5:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-5
Install the driver (choose an option):
legacy kernel module flavor:
sudo apt-get install -y cuda-drivers
or
open kernel module flavor:
sudo apt-get install -y nvidia-driver-555-open
sudo apt-get install -y cuda-drivers-555
After installation, be sure to reboot the machine:
reboot
After the reboot, check that the driver works:
nvidia-smi
The transcoder requires CUDA version 12.5 to work. A different version of CUDA may already be installed on the system. Also, updating the system may upgrade CUDA to a newer version. This does not interfere with operation; they do not need to be removed, since different versions of CUDA are installed in separate directories.
Intel VPL Encoder (Ubuntu 24.04).
The key Intel VPL components are taken from the official Intel Graphics repository — in the standard Ubuntu repositories they are older and do not support modern GPUs.
Add the Intel Graphics repository:
sudo apt-get update
sudo apt-get install -y ca-certificates gnupg wget
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | sudo gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu noble unified" | sudo tee /etc/apt/sources.list.d/intel-gpu-noble.list
sudo apt-get update
Install the Intel VPL runtime and the driver:
sudo apt-get install -y libvpl2 libmfxgen1 intel-media-va-driver-non-free
Optionally, you can install the diagnostic tools:
sudo apt-get install -y libvpl-tools
The pss user under which the service runs must belong to the render and video groups (access to the /dev/dri/ devices):
sudo usermod -aG render,video pss
sudo systemctl restart pss
Check that the GPU is visible (with libvpl-tools installed):
vainfo --display drm --device /dev/dri/renderD128
vpl-inspect
The vainfo output must contain the line “Driver version: Intel iHD …”, and vpl-inspect must list the hardware implementation (AccelerationMode VAAPI).
Install the transcoder packages.
CPU Software method:
sudo apt-get install -y pstreamer-tcsw
NVIDIA GPU:
sudo apt-get install -y pstreamer-tcnv
Intel VPL GPU (Ubuntu 24.04):
sudo apt-get install -y pstreamer-tcivpl
Files and installation verification¶
The transcoder packages will install the following files:
/usr/local/bin/tcsw — the executable file of the SW (CPU) transcoder.
/usr/local/bin/tcnv — the executable file of the NVIDIA (GPU) transcoder.
/usr/local/bin/tcivpl — the executable file of the Intel VPL (GPU) transcoder.
/opt/pss/config/pss_tc_sw.properties — the startup configuration file for the SW (CPU) transcoder.
/opt/pss/config/pss_tc_nv.properties — the startup configuration file for the NVIDIA (GPU) transcoder.
/opt/pss/config/pss_tc_ivpl.properties — the startup configuration file for the Intel VPL (GPU) transcoder.
Installing the transcoder packages will restart the pss service. You can verify the transcoder installation in the About section of the web interface: the transcoder version or an error will be shown.
Other OSes based on Debian and RHEL¶
To install the pstreamer-tcnv transcoder on OSes other than Ubuntu 22/24 and RHEL 8+, use the configurator to select the required CUDA and driver version on the NVIDIA website:
https://developer.nvidia.com/cuda-toolkit-archive
When selecting each CUDA version, information is available about which OS version it is suitable for. The supported architecture is x86_64. If you need an older OS version, check its support in older CUDA versions. The main requirement for the OS is support for GLIBC version >= 2.28.
The NVIDIA driver must be installed from the repository offered for your OS version on the page of the selected CUDA version.
Support for NVIDIA graphics cards for the pstreamer-tcnv transcoder functionality can be checked on the NVIDIA website in the Video Encode and Decode Support Matrix. This page provides a video format support matrix for the decoder and encoder, as well as other characteristics.
Removing the old CUDA version and driver¶
If an incorrect version of CUDA and the driver was installed, it may be necessary to install a different version, first removing the installed one.
Removing CUDA¶
RHEL:
dnf remove "cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*" "*nvptx*"
Debian/Ubuntu:
apt remove --autoremove --purge "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*" "*nvptx*"
Removing the driver¶
Ubuntu 22/24:
apt remove --autoremove --purge -V \
cuda-compat\* \
cuda-drivers\* \
libnvidia-cfg1\* \
libnvidia-compute\* \
libnvidia-decode\* \
libnvidia-encode\* \
libnvidia-extra\* \
libnvidia-fbc1\* \
libnvidia-gl\* \
libnvidia-gpucomp\* \
libnvidia-nscq\* \
libnvsdm\* \
libxnvctrl\* \
nvidia-dkms\* \
nvidia-driver\* \
nvidia-fabricmanager\* \
nvidia-firmware\* \
nvidia-headless\* \
nvidia-imex\* \
nvidia-kernel\* \
nvidia-modprobe\* \
nvidia-open\* \
nvidia-persistenced\* \
nvidia-settings\* \
nvidia-xconfig\* \
xserver-xorg-video-nvidia\*
RHEL 9:
dnf module remove --all nvidia-driver
dnf module reset nvidia-driver
RHEL 10:
dnf remove nvidia-driver\*