Como ativar a aceleração de vídeo nos Navegadores no Linux

Aceleração de vídeo nos navegadores Firefox e Chrome (Serve também para Opera, Vivaldi e Brave)

NOTA: Os procedimentos a seguir foram realizados no Ubuntu 20.04 com hardware Intel.

Pré-requisitos:

Ter instalado no sistema as bibliotecas de aceleração Vaapi.

No Ubuntu basta instalar o pacote (ubuntu-restricted-extras) com o comando: sudo apt-get install ubuntu-restricted-extras

– Firefox - -

Introdução: Recentemente o Firefox passou a usar Webrender como padrão no Linux. Webrender se trata de um novo motor gráfico multiplataforma, ou seja é usado no Windows e também no MacOS. Esse motor permite usar a GPU do computador para renderizar as páginas e elementos gráficos da web no seu navegador. Como sabemos, a GPU é muito melhor para renderizar do que a CPU, dessa forma usar esse recurso torna sua navegação mais suave e diminui a carga da CPU fazendo com que seu computador gaste menos energia e processamento.

Nas versões mais recentes do Firefox, o mesmo passou a suportar decodificação de vídeo via Vaapi (Obs: Não confundir Webrender com decodificação de vídeo) que faz com que os vídeos sejam reproduzidos usando a sua placa gráfica (GPU) o que consequentemente deixa a reprodução mais suave, esquenta menos o seu computador, e evita dropframes (perca de quadros ou o famoso “lag”) possibilitando que você reproduza vídeos em alta resolução em até 60 fps dependendo do poder da sua GPU.

Como ativar o Webrender e Vaapi no Firefox: A partir da versão 84, o Webrender vem ativado por padrão no ambiente Gnome, você pode verificar isso digitando about:support na barra de endereços do Firefox e verificar em Composição: Webrender

Caso não esteja mostrando Webrender é sim Basic (Significa que o Webrender não está ativado), você pode ativar o Webrender digitando about:config na barra de endereços, pesquise por gfx.webrender.all e altere o valor para true clicando duas vezes vezes em cima.

Se você está usando uma versão abaixo do Firefox 87, sugiro que atualize para o Firefox 87 ou superior! Após atualizar seu Firefox, abra about:config e ative as seguintes flags clicando duas vezes em cima deixando em true:

1 – gfx.webrender.all (Apenas se já não estiver ativado por padrão)

2- media.ffmpeg.vaapi-drm-display.enabled e media.ffmpeg.vaapi.enabled (2 flags)

3- gfx.prefer-x11-egl (Apenas se você está usando o Xorg e não Wayland)
(Nota de atualização: A partir do Firefox 88 a flag se chama: gfx.x11-egl.force-enabled)

Dica: O YouTube usa o codec vp9 para reprodução de vídeos, porém antigamente ele usava o codec h.264. O problema do codec vp9 é que muitas gpu’s ainda não suportam aceleração de hardware para ele, dessa forma ele é de codificado na maioria dos casos na cpu em vez da gpu. Dessa forma você pode usar a extensão (enhanced-h264ify) para fazer com que o YouTube volte a usar o Codec h.264 que pode ser de decodificado pela sua GPU.

Após ativar todas as flags e instalar a extensão, basta apenas fechar e abrir novamente o Firefox para que as alterações tenham efeito. Agora o seu Firefox está funcionando 100% com suporte aceleração de hardware tanto pra conteúdo como para vídeos.

Tirando algumas dúvidas:

“Vi na Internet que precisa ativar gfx.acceleration.force-enable. Isso é necessário? “

R= Não! Isso é uma flag antiga para ativar a camada do OpenGL quando o Firefox ainda não suportava o Webrender. Isso não é mais necessário e em nada influencia no Webrender no Firefox. Em breve essa flag será removida do Firefox.

“Vi na Internet que precisa colocar media.ffvpx.enable como false para a aceleração ter efeito”

R= Essa flag é um ffmpeg interno do Firefox para decodificação VP8/VP9 que em alguns casos não usa a GPU para reproduzir vídeos nesses formatos. Caso note problemas (lag) para reproduzir vídeos da Netflix que usam VP9 coloque essa flag em false. Coloque também a flag media.rdd-ffvpx.enabled em false.

Resumindo: quaisquer outras flags são desnecessárias para ativar a aceleração de hardware no Firefox. Tambem não é mais necessário iniciar o Firefox usando a variavel de ambiente MOZ_X11_EGL=1, pois essa função já é feita pela flag: gfx.prefer-x11-egl.

    -- Chrome (Chromium e Derivados) - - 

Introdução: Foi implementado no Chrome a partir da versão 88 o suporte a Vaapi. Dessa forma navegadores que usam a base 88 do Chromium suportam o recurso de aceleração de vídeo via Vaapi.

Para ativar a aceleração de vídeo no Chrome, Opera, Vivaldi e Brave digite na barra de endereços:

chrome:flags e habilite as seguintes flags:

1 - Override software rendering list (#ignore-gpu-blocklist)

2 - GPU rasterization (#enable-gpu-rasterization)

3 - Hardware-accelerated video decode (#enable-accelerated-video-decode)

Após ativar as flags clique no botão reiniciar que aparece ou feche e abra o navegador novamente para aplicar. Após abrir o navegador verifique se as alterações foram aplicadas digitando na barra de endereços chrome:gpu. Sua tela deve ficar conforme abaixo ou pelo menos em Video Decode: Hardware Accelerated.

Nos outros navegadores base Chromium o procedimento é o mesmo! Basta acessar as flags da seguinte forma:

opera:flags

vivaldi:flags

brave:flags

Para desfazer as alterações basta voltar as flags para o seus valores padrões tanto no Firefox (true ou false) como no Chrome (default).

8 Curtidas

Legal esse tutorial. Não conheço algumas dessas opções… Vou dar uma pesquisada.
Eu escrevi um tutorial esses dias para rodar o Firefox com GPU da NVIDIA com o driver do Bumblebee (em inglês) bem diferente do seu…
https://mountaineerbr.github.io/blog/36/

Bom dia! Vc escreveu esse tutorial do Link aí? Bom eu li e devo dizer que há muitas informações incorretas nela. Ex: “Using the NVIDIA driver in Linux is quite difficult and it is not so straightforward because it varies depending on what application needs it.”
O que não é verdade pelo menos nos dias de hoje, e ainda citar o recurso “blumblebee” que hj em dia nem é mais desenvolvido (salvo engano) sendo que as distros implementam essa solução nativamente. Enfim, deixei esse post apenas para consulta de futuros usuários e quem precisar consultar informações para usar a GPU no Chrome e Firefox. Não tenho intenção nenhum de discutir nesse post sobre o assunto.

É o que funciona para mim. Se vc tem outra configuração e se o seu NVIDIA funfa, que bom pra ti…
Tem várias formas de usar o cartão da NVIDIA, o Bumblebee é bom pq ele liga e desliga o cartão quando não estiver usando sem precisar fazer logout, e como eu uso o Arch em um Laptop, é mais fácil… E meu cartão da NVIDIA não é recente, então não tem informação errada. Só uso as informações da Arch Wiki.

Com relação à opção MOZ_X11_EGL, veja esse site:
https://www.phoronix.com/scan.php?page=news_item&px=Firefox-80-VA-API-X11
Mas se tu tá usando o Ubuntu 20.04 e uma versão antiga do FF (abaixo da v80), acho que precisa msm…

Se o seu hardware não estiver na whitelist ou vc estiver usando uma tela de 4K, o webrender vai continuar não-habilitado por padrão… Então você deve habilitar manualmente a opção layers.acceleration.force-enabled e correr os riscos de encontrar falhas gráficas… No meu caso, compensa…

https://wiki.mozilla.org/Platform/GFX/WebRender_Where#Linux

Sabe se isso funciona em placas de vídeo VIA, com driver openchrome?

Não sei informar, mas vc pode tentar ativar as flags e testar. Caso n funcione só voltar as flags para o padrão.

Obrigado pelo tutorial. Muito bom.

1 Curtida

Excelente tutorial, @kalebsouza. Obrigado!

1 Curtida