Транскодеры

Установка транскодеров для Perfect Streamer.

Доступны пакеты:

  • pstreamer-tcsw — транскодирование на CPU (Software).

  • pstreamer-tcnv — транскодирование на GPU NVIDIA.

  • pstreamer-tcivpl — транскодирование на GPU Intel (Intel VPL).

Главное требование — версия GLIBC >= 2.28.

Транскодер работает на AlmaLinux 8.9. Транскодер Intel VPL работает на системах AlmaLinux 10 (RHEL 10) и Ubuntu 24.04.

Какое оборудование Intel подходит для транскодирования, какие рантаймы и кодеки доступны на разных поколениях графики и как проверить, что оборудование распознано, — в разделе Транскодер Intel VPL: поддерживаемое оборудование.

RHEL 8+

  1. Установить pstreamer.

  2. Для NVIDIA установить репозитории и обновить систему (если они ещё не были установлены):

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:

sudo dnf -y install cuda-toolkit-12-5
  • Установить драйвер (выберите вариант):

Legacy

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

New

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

После установки обязательно перезагрузить машину:

reboot

После перезагрузки проверить работу драйвера:

nvidia-smi
modprobe nvidia
sudo lsmod | grep nvidia

или

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

  • Установка драйвера Intel и 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. Установить пакеты транскодера.

  • 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.

  2. NVIDIA Encoder.

  • Установить CUDA toolkit версии 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
  • Установить драйвер (выберите вариант):

legacy kernel module flavor:

sudo apt-get install -y cuda-drivers

или

open kernel module flavor:

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

После установки обязательно перезагрузить машину:

reboot

После перезагрузки проверить работу драйвера:

nvidia-smi

Для работы транскодера требуется версия CUDA 12.5. В системе уже может быть установлена CUDA другой версии. Также при обновлении системы возможно обновление CUDA на более новую версию. Это не мешает работе, их можно не удалять, разные версии CUDA устанавливаются в отдельные папки.

  1. Intel VPL Encoder (Ubuntu 24.04).

Ключевые компоненты Intel VPL берутся из официального репозитория Intel Graphics — в стандартных репозиториях Ubuntu они старее и не поддерживают современные GPU.

  • Подключить репозиторий Intel Graphics:

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
  • Установить рантайм Intel VPL и драйвер:

sudo apt-get install -y libvpl2 libmfxgen1 intel-media-va-driver-non-free
  • Дополнительно можно установить инструменты диагностики:

sudo apt-get install -y libvpl-tools
  • Пользователь pss, от имени которого работает служба, должен входить в группы render и video (доступ к устройствам /dev/dri/):

sudo usermod -aG render,video pss
sudo systemctl restart pss
  • Проверить, что GPU виден (при установленных libvpl-tools):

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

В выводе vainfo должна присутствовать строка «Driver version: Intel iHD …», а vpl-inspect должен перечислять аппаратную реализацию (AccelerationMode VAAPI).

  1. Установить пакеты транскодера.

  • 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

Файлы и проверка установки

Пакеты транскодеров установят файлы:

  • /usr/local/bin/tcsw — исполняемый файл SW (CPU) транскодера.

  • /usr/local/bin/tcnv — исполняемый файл NVIDIA (GPU) транскодера.

  • /usr/local/bin/tcivpl — исполняемый файл Intel VPL (GPU) транскодера.

  • /opt/pss/config/pss_tc_sw.properties — файл стартовой конфигурации для SW (CPU) транскодера.

  • /opt/pss/config/pss_tc_nv.properties — файл стартовой конфигурации для NVIDIA (GPU) транскодера.

  • /opt/pss/config/pss_tc_ivpl.properties — файл стартовой конфигурации для Intel VPL (GPU) транскодера.

Установка пакетов транскодера перезапустит службу pss. Проверить установку транскодеров можно в разделе About веб-интерфейса: будет отображена версия транскодеров или ошибка.

Другие ОС на основе Debian и RHEL

Для установки транскодера pstreamer-tcnv на ОС, отличные от Ubuntu 22/24 и RHEL 8+, используйте конфигуратор для подбора необходимой версии CUDA и драйвера на сайте NVIDIA:

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

При выборе каждой из версий CUDA доступна информация, для какой версии ОС она подходит. Поддерживаемая архитектура — x86_64. Если вам требуется более старая версия ОС, то проверьте её поддержку в более старых версиях CUDA. Главное требование к ОС — это поддержка версии GLIBC >= 2.28.

Драйвер NVIDIA необходимо устанавливать из репозитория, предлагаемого для версии вашей ОС на странице выбранной версии CUDA.

Поддержку видеокарт NVIDIA для функционала транскодера pstreamer-tcnv можно проверить на сайте NVIDIA в Video Encode and Decode Support Matrix. На данной странице доступна матрица поддержки видеоформатов для декодера и энкодера, а также другие характеристики.

Удаление старой версии CUDA и драйвера

В случае установки некорректной версии CUDA и драйвера может потребоваться установить другую версию, предварительно удалив установленную.

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

Удаление 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*"

Удаление драйвера

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