Транскодеры

Установка транскодеров для 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 9 и 10 (RHEL 9/10) и Ubuntu 24.04.

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

RHEL 8+

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

  2. Для NVIDIA подключить репозиторий NVIDIA для своей версии системы и обновить систему (если репозиторий ещё не подключён). Команда сама подставляет номер версии, 8 или 9:

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 нужен только драйвер NVIDIA версии 550 или новее; CUDA Toolkit на сервер стримера ставить не нужно.

  • Установить драйвер (выберите вариант):

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.

Для pstreamer-tcnv нужен только драйвер NVIDIA версии 550 или новее; CUDA Toolkit на сервер стримера ставить не нужно.

  • Установить драйвер из репозитория Ubuntu — этого достаточно:

sudo ubuntu-drivers install
  • Или установить драйвер из репозитория NVIDIA. Сначала подключить репозиторий для своей версии Ubuntu:

# 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

Затем установить драйвер из этого репозитория (выберите вариант):

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

Версию драйвера показывает строка Driver Version в выводе nvidia-smi: она должна быть не ниже 550. 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. Проверить установку транскодеров можно на экране «О системе» веб-интерфейса (О системе): там показана версия транскодеров или ошибка.

Стримеру версии 2.0.2.416 и новее нужны транскодеры не старше pstreamer-tcnv 1.2.0.128, pstreamer-tcsw 1.2.0.127 и pstreamer-tcivpl 1.1.0.56: транскодер прежней версии может аварийно завершиться при остановке или перезапуске службы. Обновляйте установленные пакеты транскодеров вместе со стримером. С версии 2.0.2.420 после начала остановки службы транскодеры заново не запускаются: они завершаются вместе со службой.

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

Для транскодера pstreamer-tcnv на ОС, отличных от Ubuntu 22/24 и RHEL 8+, нужен только драйвер NVIDIA версии 550 или новее для этой ОС; CUDA Toolkit не нужен. Поддерживаемая архитектура — x86_64, главное требование к ОС — поддержка GLIBC >= 2.28. Репозитории драйвера для разных ОС NVIDIA перечисляет на странице загрузки CUDA:

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

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

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

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

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