Transcoder

Installation der Transcoder für Perfect Streamer.

Verfügbare Pakete:

  • pstreamer-tcsw — Transcodierung auf der CPU (Software).

  • pstreamer-tcnv — Transcodierung auf einer NVIDIA-GPU.

  • pstreamer-tcivpl — Transcodierung auf einer Intel-GPU (Intel VPL).

Die Hauptvoraussetzung ist GLIBC-Version >= 2.28.

Der Transcoder läuft unter AlmaLinux 8.9. Der Intel-VPL-Transcoder läuft auf Systemen mit AlmaLinux 10 (RHEL 10) und Ubuntu 24.04.

Welche Intel-Hardware für die Transkodierung geeignet ist, welche Laufzeitumgebungen und Codecs auf den verschiedenen Grafikgenerationen verfügbar sind und wie sich prüfen lässt, dass die Hardware erkannt wurde, beschreibt der Abschnitt Intel-VPL-Transcoder: unterstützte Hardware.

RHEL 8+

  1. pstreamer installieren.

  2. Für NVIDIA die Repositorys installieren und das System aktualisieren (falls sie noch nicht installiert wurden):

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
  1. NVIDIA Encoder.

  • CUDA installieren:

sudo dnf -y install cuda-toolkit-12-5
  • Den Treiber installieren (Variante auswählen):

Legacy

sudo dnf -y module install nvidia-driver:latest-dkms

New

sudo dnf -y module install nvidia-driver:open-dkms

Nach der Installation muss die Maschine unbedingt neu gestartet werden:

reboot

Nach dem Neustart die Funktion des Treibers prüfen:

nvidia-smi
modprobe nvidia
sudo lsmod | grep nvidia

oder

modprobe nouveau
sudo lsmod | grep nouveau
  1. Intel VPL Encoder.

  • Installation des Intel-Treibers und von 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
  1. Die Transcoder-Pakete installieren.

  • CPU-Software-Methode:

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

  1. pstreamer installieren.

  2. NVIDIA Encoder.

  • CUDA-Toolkit Version 12.5 installieren:

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
  • Den Treiber installieren (Variante auswählen):

legacy kernel module flavor:

sudo apt-get install -y cuda-drivers

oder

open kernel module flavor:

sudo apt-get install -y nvidia-driver-555-open
sudo apt-get install -y cuda-drivers-555

Nach der Installation muss die Maschine unbedingt neu gestartet werden:

reboot

Nach dem Neustart die Funktion des Treibers prüfen:

nvidia-smi

Für den Betrieb des Transcoders ist CUDA-Version 12.5 erforderlich. Auf dem System kann bereits eine andere CUDA-Version installiert sein. Außerdem kann bei einer Systemaktualisierung CUDA auf eine neuere Version aktualisiert werden. Dies beeinträchtigt den Betrieb nicht; sie müssen nicht entfernt werden, da verschiedene CUDA-Versionen in separaten Verzeichnissen installiert werden.

  1. Intel VPL Encoder (Ubuntu 24.04).

Die zentralen Intel-VPL-Komponenten stammen aus dem offiziellen Intel-Graphics-Repository — in den Standard-Repositorys von Ubuntu sind sie älter und unterstützen keine modernen GPUs.

  • Das Intel-Graphics-Repository hinzufügen:

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
  • Die Intel-VPL-Laufzeitumgebung und den Treiber installieren:

sudo apt-get install -y libvpl2 libmfxgen1 intel-media-va-driver-non-free
  • Optional können die Diagnosewerkzeuge installiert werden:

sudo apt-get install -y libvpl-tools
  • Der Benutzer pss, unter dem der Dienst läuft, muss den Gruppen render und video angehören (Zugriff auf die Geräte /dev/dri/):

sudo usermod -aG render,video pss
sudo systemctl restart pss
  • Prüfen, dass die GPU sichtbar ist (bei installierten libvpl-tools):

vainfo --display drm --device /dev/dri/renderD128
vpl-inspect

In der Ausgabe von vainfo muss die Zeile „Driver version: Intel iHD …“ vorhanden sein, und vpl-inspect muss die Hardware-Implementierung auflisten (AccelerationMode VAAPI).

  1. Die Transcoder-Pakete installieren.

  • CPU-Software-Methode:

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

Dateien und Installationsprüfung

Die Transcoder-Pakete installieren folgende Dateien:

  • /usr/local/bin/tcsw — ausführbare Datei des SW-(CPU-)Transcoders.

  • /usr/local/bin/tcnv — ausführbare Datei des NVIDIA-(GPU-)Transcoders.

  • /usr/local/bin/tcivpl — ausführbare Datei des Intel-VPL-(GPU-)Transcoders.

  • /opt/pss/config/pss_tc_sw.properties — Startkonfigurationsdatei für den SW-(CPU-)Transcoder.

  • /opt/pss/config/pss_tc_nv.properties — Startkonfigurationsdatei für den NVIDIA-(GPU-)Transcoder.

  • /opt/pss/config/pss_tc_ivpl.properties — Startkonfigurationsdatei für den Intel-VPL-(GPU-)Transcoder.

Die Installation der Transcoder-Pakete startet den Dienst pss neu. Die Installation der Transcoder kann im Abschnitt About der Weboberfläche geprüft werden: Es wird die Version der Transcoder oder ein Fehler angezeigt.

Andere Betriebssysteme auf Basis von Debian und RHEL

Um den Transcoder pstreamer-tcnv auf anderen Betriebssystemen als Ubuntu 22/24 und RHEL 8+ zu installieren, verwenden Sie den Konfigurator zur Auswahl der erforderlichen CUDA- und Treiberversion auf der NVIDIA-Website:

https://developer.nvidia.com/cuda-toolkit-archive

Bei der Auswahl jeder CUDA-Version stehen Informationen darüber zur Verfügung, für welche Betriebssystemversion sie geeignet ist. Die unterstützte Architektur ist x86_64. Wenn Sie eine ältere Betriebssystemversion benötigen, prüfen Sie deren Unterstützung in älteren CUDA-Versionen. Die Hauptvoraussetzung für das Betriebssystem ist die Unterstützung von GLIBC-Version >= 2.28.

Der NVIDIA-Treiber muss aus dem Repository installiert werden, das für Ihre Betriebssystemversion auf der Seite der ausgewählten CUDA-Version angeboten wird.

Die Unterstützung von NVIDIA-Grafikkarten für die Funktionalität des Transcoders pstreamer-tcnv kann auf der NVIDIA-Website in der Video Encode and Decode Support Matrix geprüft werden. Auf dieser Seite steht eine Matrix zur Unterstützung von Videoformaten für Decoder und Encoder sowie weitere Merkmale zur Verfügung.

Entfernen der alten CUDA-Version und des Treibers

Falls eine falsche CUDA- und Treiberversion installiert wurde, kann es erforderlich sein, eine andere Version zu installieren, wobei die installierte Version zuvor entfernt werden muss.

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html?highlight=uninstall#removing-cuda-toolkit

Entfernen von 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*"

Entfernen des Treibers

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\*