Obtenha a aceleração de hardware VA-API do Firefox funcionando na GPU NVIDIA
Para máquinas Ubuntu com placa gráfica NVIDIA, veja como implementar aceleração de hardware para reprodução de vídeo no navegador Firefox.
O Firefox até agora suporta apenas VA-API para decodificação de GPU para descarregar a CPU e economizar energia. As GPUs Intel e AMD suportam VA-API. No entanto, a NVIDIA até agora oferece suporte à API apenas por meio do driver Nouveau de código aberto.
Se você tiver apenas uma GPU NVIDIA rodando com driver proprietário, a aceleração de vídeo por hardware não funcionará imediatamente para o Firefox.
Para escolha, existem o driver libvdpau-va-gl1
(somente h.264) ou o driver libva-vdpau, mas ambos parecem não estar mais atualizados. A melhor escolha até agora é o driver nvidia vaapi gratuito e de código aberto.
NOTA 1: Este tutorial até agora não funciona no laptop Optimus, consulte este relatório de bug para obter detalhes.
NOTA 2: Até o momento, isso é apenas para o Firefox, já que outros players, como o MPV, suportam o NVDEC da NVIDIA pronto para uso.
NOTA 3: Não está funcionando para o Firefox Snap pré-instalado em meu teste, pois ele roda em sandbox. Tente instalar o pacote deb oficial ou o pacote Mozilla PPA.
Etapa 1: Instale o driver NVIDIA VAAPI
O pacote de driver foi incluído no repositório do Ubuntu desde o Ubuntu 23.10.
Portanto, os usuários atuais do Ubuntu 23.10 e Ubuntu 24.04 podem simplesmente pressionar Ctrl+Alt+T
para abrir o terminal e executar o comando para instalá-lo:
sudo apt install nvidia-vaapi-driver
Para a versão mais recente, existe um PPA não oficial que contém o pacote para Ubuntu 22.04, Ubuntu 23.10 e Ubuntu 24.04.
Primeiro, adicione o PPA executando o comando:
sudo add-apt-repository ppa:ubuntuhandbook1/nvidia-vaapi
Digite a senha do usuário quando for solicitada (sem feedback de asterisco) a autenticação sudo e pressione Enter para continuar.
Em seguida, atualize o cache do pacote do sistema executando o comando:
sudo apt update
Por fim, instale o pacote de driver:
sudo apt install nvidia-vaapi-driver
Em seguida, instale também o vainfo
para verificar as informações do vaapi:
sudo apt install vainfo
Etapa 2: verifique as informações VA-API
Agora na janela do terminal, execute o comando:
vainfo
Para driver NVIDIA superior à versão 525, você precisa executar export NVD_BACKEND=direct
primeiro para ativar o controle de back-end direto e export LIBVA_DRIVER_NAME=nvidia
para especificar o driver.
Ele deve gerar algo como a captura de tela abaixo mostra, incluindo a versão va-api e a versão do driver (driver VA-API NVDEC), junto com os codecs suportados.
Você pode tentar reproduzir um arquivo de vídeo na linha de comando, usando MPV (superior a v0.36) para verificar se va-api funciona:
mpv --hwdec=vaapi /path/to/video-file
Ele gera algo parecido com Usando decodificação de hardware (vaapi).
Etapa 3: configurar o Firefox
Agora inicie o Firefox, digite about:config
e pressione Enter, depois clique em “Aceitar o risco e continuar” para ir à página de configurações.
Em seguida, digite as seguintes chaves, uma por uma, na caixa de filtro e defina-as como verdadeiras:
media.ffmpeg.vaapi.enabled
gfx.x11-egl.force-enabled
widget.dmabuf.force-enabled
Etapa 4: configurar variável de ambiente
Na janela do terminal (Ctrl+Alt+T), execute os seguintes comandos um por um para configurar a variável de ambiente para o Firefox va-api funcionar na NVIDIA:
Especifique o nome do driver:
export LIBVA_DRIVER_NAME=nvidia
Desative a sandbox do processo RDD:
export MOZ_DISABLE_RDD_SANDBOX=1
Para NVIDIA 525 e superior, defina também o controle direto:
export NVD_BACKEND=direct
Para NVIDIA 470 herdada, especifique o nome da biblioteca do fornecedor EGL:
export __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/10_nvidia.json
Como opção, você também pode ativar o log para fins de depuração:
export NVD_LOG=1
Por fim, inicie o Firefox na mesma janela do terminal /usr/bin/firefox
e reproduza um vídeo para verificar (veja a próxima etapa).
Se funcionar, você pode tornar as variáveis de ambiente permanentes através dos seguintes passos:
Primeiro, abra a pasta inicial, pressione
Ctrl+h
, descubra e clique em editar o arquivo .profileQuando o arquivo abrir, adicione os comandos
export
anteriores que você executou (exclua o NVD_LOG) no final como novas linhas. Finalmente, salve o arquivo.
Você precisa sair e entrar novamente para que as alterações no arquivo .profile
funcionem.
Etapa 5: verificar
Ao reproduzir um vídeo usando seu navegador Firefox, você pode usar o comando nvtop
para verificar.
Primeiro, abra o terminal (
Ctrl+Alt+T
) e execute o comando para instalar o nvtop:sudo apt install nvtop
- Em seguida, execute o comando
nvtop
no terminal durante a reprodução do vídeo. Se a GPU estiver decodificando, há uma linha na parte inferior marcada como tipo Compute, com informações de qual processo e comando. No caso, deve ter algo a ver com o Firefox.
Para escolha, você também pode executar nvidia-smi pmon
. Em vez disso, deve haver o tipo C na saída para o processo correspondente durante a reprodução.
Para mais informações, consulte nvidia-vaapi-driver na página do github.
Desinstalar:
Se o driver de alguma forma não funcionar para você, você pode removê-lo executando o comando no terminal:
sudo apt remove --autoremove nvidia-vaapi-driver
Além disso, remova o PPA (se adicionado) por meio do comando:
sudo add-apt-repository --remove ppa:ubuntuhandbook1/nvidia-vaapi
Você também pode ir para a página about:config
no Firefox para desfazer as alterações feitas e remover as linhas export
(se definidas) em .profiles
arquivo.