Transcodificadores

Instalação dos transcodificadores para o Perfect Streamer.

Pacotes disponíveis:

  • pstreamer-tcsw — transcodificação na CPU (Software).

  • pstreamer-tcnv — transcodificação na GPU NVIDIA.

  • pstreamer-tcivpl — transcodificação na GPU Intel (Intel VPL).

O requisito principal é a versão do GLIBC >= 2.28.

O transcodificador funciona no AlmaLinux 8.9. O transcodificador Intel VPL funciona em sistemas AlmaLinux 10 (RHEL 10) e Ubuntu 24.04.

Qual hardware Intel é adequado para a transcodificação, quais runtimes e codecs estão disponíveis nas diferentes gerações de gráficos e como verificar que o hardware foi reconhecido — na seção Transcodificador Intel VPL: hardware suportado.

RHEL 8+

  1. Instalar o pstreamer.

  2. Para NVIDIA, instalar os repositórios e atualizar o sistema (caso ainda não tenham sido instalados):

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.

  • Instalar o CUDA:

sudo dnf -y install cuda-toolkit-12-5
  • Instalar o driver (escolha uma opção):

Legacy

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

New

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

Após a instalação, é obrigatório reiniciar a máquina:

reboot

Após o reinício, verificar o funcionamento do driver:

nvidia-smi
modprobe nvidia
sudo lsmod | grep nvidia

ou

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

  • Instalação do driver Intel e do 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. Instalar os pacotes do transcodificador.

  • Método 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. Instalar o pstreamer.

  2. NVIDIA Encoder.

  • Instalar o toolkit CUDA versão 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
  • Instalar o driver (escolha uma opção):

legacy kernel module flavor:

sudo apt-get install -y cuda-drivers

ou

open kernel module flavor:

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

Após a instalação, é obrigatório reiniciar a máquina:

reboot

Após o reinício, verificar o funcionamento do driver:

nvidia-smi

O transcodificador requer a versão CUDA 12.5 para funcionar. No sistema já pode estar instalada outra versão do CUDA. Além disso, ao atualizar o sistema, é possível que o CUDA seja atualizado para uma versão mais recente. Isso não interfere no funcionamento; não é necessário removê-las, pois as diferentes versões do CUDA são instaladas em pastas separadas.

  1. Intel VPL Encoder (Ubuntu 24.04).

Os componentes principais do Intel VPL são obtidos do repositório oficial do Intel Graphics — nos repositórios padrão do Ubuntu, eles são mais antigos e não suportam as GPUs modernas.

  • Adicionar o repositório do 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
  • Instalar o runtime do Intel VPL e o driver:

sudo apt-get install -y libvpl2 libmfxgen1 intel-media-va-driver-non-free
  • Opcionalmente, é possível instalar as ferramentas de diagnóstico:

sudo apt-get install -y libvpl-tools
  • O usuário pss em nome do qual o serviço é executado deve pertencer aos grupos render e video (acesso aos dispositivos /dev/dri/):

sudo usermod -aG render,video pss
sudo systemctl restart pss
  • Verificar que a GPU está visível (com o libvpl-tools instalado):

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

Na saída de vainfo deve estar presente a linha “Driver version: Intel iHD …”, e vpl-inspect deve listar a implementação por hardware (AccelerationMode VAAPI).

  1. Instalar os pacotes do transcodificador.

  • Método 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

Arquivos e verificação da instalação

Os pacotes dos transcodificadores instalarão os seguintes arquivos:

  • /usr/local/bin/tcsw — arquivo executável do transcodificador SW (CPU).

  • /usr/local/bin/tcnv — arquivo executável do transcodificador NVIDIA (GPU).

  • /usr/local/bin/tcivpl — arquivo executável do transcodificador Intel VPL (GPU).

  • /opt/pss/config/pss_tc_sw.properties — arquivo de configuração de inicialização do transcodificador SW (CPU).

  • /opt/pss/config/pss_tc_nv.properties — arquivo de configuração de inicialização do transcodificador NVIDIA (GPU).

  • /opt/pss/config/pss_tc_ivpl.properties — arquivo de configuração de inicialização do transcodificador Intel VPL (GPU).

A instalação dos pacotes do transcodificador reiniciará o serviço pss. A instalação dos transcodificadores pode ser verificada na seção About da interface web: será exibida a versão dos transcodificadores ou um erro.

Outros sistemas operacionais baseados em Debian e RHEL

Para instalar o transcodificador pstreamer-tcnv em sistemas operacionais diferentes de Ubuntu 22/24 e RHEL 8+, utilize o configurador para selecionar a versão de CUDA e do driver necessária no site da NVIDIA:

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

Ao selecionar cada versão do CUDA, há informações disponíveis sobre para qual versão de sistema operacional ela é adequada. A arquitetura suportada é x86_64. Se você precisar de uma versão mais antiga do sistema operacional, verifique seu suporte em versões mais antigas do CUDA. O requisito principal para o sistema operacional é o suporte à versão do GLIBC >= 2.28.

O driver NVIDIA deve ser instalado a partir do repositório oferecido para a versão do seu sistema operacional na página da versão do CUDA selecionada.

O suporte das placas de vídeo NVIDIA para a funcionalidade do transcodificador pstreamer-tcnv pode ser verificado no site da NVIDIA na Video Encode and Decode Support Matrix. Nesta página está disponível uma matriz de suporte de formatos de vídeo para o decodificador e o codificador, além de outras características.

Remoção da versão antiga do CUDA e do driver

Caso tenha sido instalada uma versão incorreta do CUDA e do driver, pode ser necessário instalar outra versão, removendo previamente a versão instalada.

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

Remoção do 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*"

Remoção do driver

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