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 oder neuer. Der Intel-VPL-Transcoder läuft auf Systemen mit AlmaLinux 9 und 10 (RHEL 9/10) und Ubuntu 24.04.

Welche Intel-Hardware für die Transcodierung 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 das NVIDIA-Repository für die eigene Systemversion hinzufügen und das System aktualisieren (falls das Repository noch nicht hinzugefügt ist). Der Befehl setzt die Versionsnummer, 8 oder 9, selbst ein:

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

pstreamer-tcnv benötigt nur den NVIDIA-Treiber ab Version 550; das CUDA Toolkit muss auf dem Streamer-Server nicht installiert werden.

  • 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 prüfen, ob der Treiber funktioniert:

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.

  • Methode CPU Software:

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.

pstreamer-tcnv benötigt nur den NVIDIA-Treiber ab Version 550; das CUDA Toolkit muss auf dem Streamer-Server nicht installiert werden.

  • Den Treiber aus dem Ubuntu-Repository installieren; das genügt:

sudo ubuntu-drivers install
  • Oder den Treiber aus dem NVIDIA-Repository installieren. Zuerst das Repository für die eigene Ubuntu-Version hinzufügen:

# 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

Anschließend den Treiber aus diesem Repository 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 prüfen, ob der Treiber funktioniert:

nvidia-smi

Die Treiberversion steht in der Zeile Driver Version der Ausgabe von nvidia-smi: Sie muss mindestens 550 sein. Eine bereits auf dem System installierte CUDA-Version, gleich welche, stört den Betrieb des Transcoders nicht.

  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.

  • Methode CPU Software:

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. Ob die Transcoder installiert sind, lässt sich auf dem Bildschirm „Über das System“ der Weboberfläche prüfen (Über das System): Dort steht die Version der Transcoder oder ein Fehler.

Der Streamer ab Version 2.0.2.416 benötigt Transcoder, die nicht älter sind als pstreamer-tcnv 1.2.0.128, pstreamer-tcsw 1.2.0.127 und pstreamer-tcivpl 1.1.0.56: Ein Transcoder einer früheren Version kann beim Anhalten oder Neustarten des Dienstes abstürzen. Aktualisieren Sie die installierten Transcoder-Pakete zusammen mit dem Streamer. Ab Version 2.0.2.420 werden Transcoder nach Beginn des Stoppens des Dienstes nicht erneut gestartet: Sie werden zusammen mit dem Dienst beendet.

Andere Betriebssysteme auf Basis von Debian und RHEL

Auf anderen Betriebssystemen als Ubuntu 22/24 und RHEL 8+ benötigt der Transcoder pstreamer-tcnv nur den NVIDIA-Treiber ab Version 550 für dieses Betriebssystem; das CUDA Toolkit ist nicht erforderlich. Die unterstützte Architektur ist x86_64, die Hauptvoraussetzung für das Betriebssystem ist die Unterstützung von GLIBC >= 2.28. Die Treiber-Repositorys für die verschiedenen Betriebssysteme listet NVIDIA auf der CUDA-Downloadseite auf:

https://developer.nvidia.com/cuda-downloads

Ob eine NVIDIA-Grafikkarte für den Transcoder pstreamer-tcnv geeignet ist, lässt sich auf der NVIDIA-Website in der Video Encode and Decode Support Matrix prüfen. Diese Seite enthält die Unterstützungsmatrix der Videoformate für Decoder und Encoder sowie weitere Merkmale.

Entfernen der alten CUDA-Version und des Treibers

Ein früher installiertes CUDA Toolkit braucht der Transcoder nicht; es kann entfernt werden, um Speicherplatz freizugeben. Der Treiber wird entfernt, wenn eine andere Treiberversion installiert werden soll.

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