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 or later. The Intel VPL transcoder runs on AlmaLinux 9 and 10 (RHEL 9/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 recognised are described in Intel VPL transcoder: supported hardware.
RHEL 8+¶
Install pstreamer.
For NVIDIA, add the NVIDIA repository for your system version and update the system (if the repository has not been added yet). The command fills in the version number, 8 or 9, by itself:
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel$(rpm -E %rhel)/x86_64/cuda-rhel$(rpm -E %rhel).repo
sudo dnf clean all
sudo dnf update -y
reboot
NVIDIA Encoder.
pstreamer-tcnv only needs the NVIDIA driver version 550 or newer; the CUDA Toolkit does not need to be installed on the streamer server.
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.
pstreamer-tcnv only needs the NVIDIA driver version 550 or newer; the CUDA Toolkit does not need to be installed on the streamer server.
Install the driver from the Ubuntu repository; this is enough:
sudo ubuntu-drivers install
Or install the driver from the NVIDIA repository. First add the repository for your Ubuntu version:
# Ubuntu 22.04
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
# Ubuntu 24.04
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
Then install the driver from this repository (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 driver version is shown in the Driver Version line of the nvidia-smi output: it must be 550 or higher. Whatever CUDA version is already installed on the system, it does not interfere with the transcoder.
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 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 restarts the pss service. You can check the transcoder installation on the “About” screen of the web interface (About): it shows the transcoder version or an error.
Streamer 2.0.2.416 and newer needs transcoders no older than pstreamer-tcnv 1.2.0.128, pstreamer-tcsw 1.2.0.127 and pstreamer-tcivpl 1.1.0.56: a transcoder of an earlier version may crash when the service is stopped or restarted. Update the installed transcoder packages together with the streamer. Since version 2.0.2.420, once the service has begun to stop, transcoders are not started again: they finish together with the service.
Other OSes based on Debian and RHEL¶
On OSes other than Ubuntu 22/24 and RHEL 8+, the pstreamer-tcnv transcoder only needs the NVIDIA driver version 550 or newer for that OS; the CUDA Toolkit is not needed. The supported architecture is x86_64, and the main requirement for the OS is support for GLIBC >= 2.28. NVIDIA lists the driver repositories for the various OSes on the CUDA download page:
https://developer.nvidia.com/cuda-downloads
Whether an NVIDIA graphics card suits the pstreamer-tcnv transcoder can be checked on the NVIDIA website in the Video Encode and Decode Support Matrix. This page gives the video format support matrix for the decoder and the encoder, as well as other characteristics.
Removing the old CUDA version and driver¶
A previously installed CUDA Toolkit is not needed by the transcoder and can be removed to free up disk space. The driver is removed when you need to install a different version of it.
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\*