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+¶
pstreamer installieren.
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
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
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
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¶
pstreamer installieren.
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.
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).
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.
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\*