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 ou posterior. O transcodificador Intel VPL funciona em sistemas AlmaLinux 9 e 10 (RHEL 9/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 está descrito na seção Transcodificador Intel VPL: hardware suportado.

RHEL 8+

  1. Instalar o pstreamer.

  2. Para NVIDIA, adicionar o repositório da NVIDIA para a sua versão do sistema e atualizar o sistema (caso o repositório ainda não tenha sido adicionado). O comando insere sozinho o número da versão, 8 ou 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.

O pstreamer-tcnv precisa apenas do driver NVIDIA versão 550 ou mais recente; não é necessário instalar o CUDA Toolkit no servidor do streamer.

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

O pstreamer-tcnv precisa apenas do driver NVIDIA versão 550 ou mais recente; não é necessário instalar o CUDA Toolkit no servidor do streamer.

  • Instalar o driver a partir do repositório do Ubuntu; isso é suficiente:

sudo ubuntu-drivers install
  • Ou instalar o driver a partir do repositório da NVIDIA. Primeiro, adicionar o repositório para a sua versão do 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

Em seguida, instalar o driver a partir desse repositório (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

A versão do driver aparece na linha Driver Version da saída de nvidia-smi: ela deve ser 550 ou superior. O CUDA já instalado no sistema, de qualquer versão, não interfere no funcionamento do transcodificador.

  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 tela «Sobre o sistema» da interface web (Sobre o sistema): ali aparece a versão dos transcodificadores ou um erro.

O streamer da versão 2.0.2.416 ou mais recente precisa de transcodificadores não mais antigos que pstreamer-tcnv 1.2.0.128, pstreamer-tcsw 1.2.0.127 e pstreamer-tcivpl 1.1.0.56: um transcodificador de versão anterior pode falhar abruptamente ao parar ou reiniciar o serviço. Atualize os pacotes de transcodificadores instalados junto com o streamer. Desde a versão 2.0.2.420, depois que a parada do serviço começa, os transcodificadores não são iniciados novamente: eles terminam junto com o serviço.

Outros sistemas operacionais baseados em Debian e RHEL

Em sistemas operacionais diferentes de Ubuntu 22/24 e RHEL 8+, o transcodificador pstreamer-tcnv precisa apenas do driver NVIDIA versão 550 ou mais recente para esse sistema operacional; o CUDA Toolkit não é necessário. A arquitetura suportada é x86_64, e o requisito principal para o sistema operacional é o suporte ao GLIBC >= 2.28. A NVIDIA lista os repositórios do driver para os diferentes sistemas operacionais na página de download do CUDA:

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

É possível verificar se uma placa de vídeo NVIDIA é adequada para o transcodificador pstreamer-tcnv no site da NVIDIA, na Video Encode and Decode Support Matrix. Essa página traz a 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

O CUDA Toolkit instalado anteriormente não é necessário para o transcodificador e pode ser removido para liberar espaço em disco. O driver é removido quando é preciso instalar outra versão dele.

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