Blog Linux Avante

O Fedora atualiza o Chromium com suporte VAAPI. Veja como ativar a decodificação de vídeo acelerada por hardware

8 de janeiro de 2019

Chromium foi atualizado no Fedora com um patch que habilita o suporte VAAPI (API de aceleração de vídeo). Quando VAAPI é usado, a reprodução do vídeo deve ser mais suave, usando menos CPU e melhorando o uso de energia.

Embora este patch tenha sido rejeitado pelos mantenedores do Chromium, existem alguns pacotes de terceiros que incluem o patch VAAPI, para Ubuntu, Arch Linux e outros. E agora, o Fedora inclui isso por padrão!

Por que isso é tão importante? Por exemplo, meu laptop (usando Chromium no Fedora 29) usava muito a CPU ao reproduzir vídeos do YouTube, fazendo com que esquentasse muito e drenasse a bateria:

Chromium CPU Usage Fedora

Este é o mesmo vídeo/laptop Fedora, mas desta vez usando Chromium com decodificação de vídeo acelerada por hardware (VAAPI) habilitada, mostrando um uso de CPU muito menor:

Uso da CPU Chromium VAAPI Fedora

Outra captura de tela mostrando as diferenças no uso da CPU durante a reprodução de um vídeo usando Firefox, Chromium sem o patch VAAPI e Chromium com VAAPI, de fedoramagazine.org (Créditos: Tobias Wolfshappen):

Para gráficos AMD, o Chromium deve usar decodificação de vídeo acelerada por hardware por padrão, mas esse não é o caso para gráficos Intel, que requerem o pacote libva-intel-driver do RPM Fusion. Quanto à Nvidia, não tenho certeza porque meu laptop Fedora usa gráficos Intel; mas você provavelmente precisa de um vdpau-va-driver corrigido para fazê-lo funcionar, como é o caso do Ubuntu.

Para gráficos Intel e AMD, se você quiser habilitar a decodificação de vídeo acelerada por hardware para vídeos h264, você precisará instalar algumas coisas adicionais. Isso ocorre porque a compilação do Fedora Chromium não suporta h264 por padrão.

Algumas GPUs mais antigas não suportam decodificação de hardware para codecs VP8/VP9. Não há nada que possa ser feito sobre isso - em tais casos, os vídeos VP8/VP9 não serão acelerados por hardware.

Um site que usa VP8/VP9 por padrão é o YouTube. No entanto, o YouTube pode ser forçado a usar h264 em vez de VP8/VP9 e, assim, obter decodificação de vídeo acelerada por hardware.

As instruções abaixo explicam como habilitar a decodificação de vídeo acelerada por hardware no Fedora com gráficos Intel, bem como habilitá-la para vídeos h264, para gráficos Intel e AMD, e forçar o YouTube a usar h264 em vez de VP8/VP9. Você também encontrará instruções sobre como verificar se o Chromium está usando decodificação de vídeo acelerada por hardware.

Pré-requisitos:

  • O patch VAAPI foi adicionado começando com Chromium 71 no Fedora, então você precisa desta versão ou mais recente (disponível no Fedora Rawhide e Fedora 29, em testes para Fedora 28 e EPEL 7)
  • Você precisa (?) usar a sessão Xorg para fazer o VAAPI funcionar com o navegador Chromium (para usuários GDM/GNOME, clique no ícone de engrenagem ao lado do botão Sign In na tela de login e selecione GNOME on Xorg). Meu laptop com gráficos Intel não podia usar VAAPI em Wayland (XWayland) no Fedora 29, mas não tenho certeza se esse também é o caso para gráficos AMD.

I. Gráficos AMD/Intel: ative o RPM Fusion e instale chromium-libs-media-freeworld para suporte a h264.

Veja estas instruções para instalar o repositório RPM Fusion (baixe e instale o pacote para sua versão Fedora ou siga as instruções de linha de comando). Assim que o RPM Fusion estiver habilitado, instale o pacote chromium-libs-media-freeworld em seu sistema Fedora:

Comandos para usar no terminal

sudo dnf install chromium-libs-media-freeworld

II. Gráficos AMD/Intel: force o YouTube a usar h.264 em vez de VP8/VP9.

Instale a extensão do Chrome h264ify para forçar o YouTube a transmitir vídeos h.264 em vez de vídeos VP8/VP9.

Isso porque, como mencionei acima, muitas GPUs não suportam decodificação de hardware para codecs VP8/VP9, e eles são usados por padrão no YouTube.

III. Apenas gráficos Intel: instale os pacotes libva-intel-hybrid-driver e libva-intel-driver do RPM Fusion para que o Chromium use VAAPI.

Comandos para usar no terminal

sudo dnf install libva-intel-driver libva-intel-hybrid-driver

Como uma observação lateral, os sinalizadores Hardware-accelerated video decode e Hardware-accelerated mjpeg decode for captured frame são habilitados por padrão nas compilações do Fedora Chromium, então você não precisa habilitá-los manualmente.

Como verificar se o Chromium está usando decodificação de vídeo GPU

Fedora Chromium GPUVideoDecoder

Para verificar se o Chromium está usando decodificação de vídeo GPU, comece reproduzindo um vídeo no YouTube. Em seguida, abra uma nova guia no Chromium e digite o seguinte na barra de URL: chrome://media-internals

Na guia chrome://media-internals, clique no URL do vídeo (para expandi-lo), role para baixo e procure em Player Properties, e você deve encontrar a propriedade video_decoder. Se o valor video_decoder for GpuVideoDecoder, significa que o vídeo que está sendo reproduzido no YouTube na outra guia está usando decodificação de vídeo acelerada por hardware. Você também deve notar um uso de CPU muito menor no Chromium ao reproduzir vídeos.

Se estiver escrito FFmpegVideoDecoder ou VpxVideoDecoder, a decodificação acelerada de vídeo não está funcionando ou talvez você tenha esquecido de instalar (ou desabilitar) a extensão h264ify do Chrome ou o pacote chromium-libs-media-freeworld do RPM Fusion.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda