GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo habilitar la aceleración de hardware en Chromium en Ubuntu o Linux Mint (compilaciones de PPA parcheadas VA-API)

Es posible que haya notado que mirar videos HD de Youtube y otros sitios web similares en los navegadores Google Chrome o Chromium en Linux aumenta significativamente el uso de la CPU y cuando usa una computadora portátil se calienta bastante y agota la batería muy rápido. Esto se debe a que Chrome/Chromium (también Firefox, pero no hay forma de forzarlo) no admite la decodificación de video acelerada por hardware en Linux.

Este artículo explica cómo instalar una versión beta o de desarrollo de Chromium que contiene un parche que habilita la API VA en Linux y agrega soporte para la decodificación de video acelerada por GPU, lo que reduce significativamente el uso de la CPU cuando se miran videos HD en línea. La guía solo cubre las tarjetas gráficas Intel y Nvidia, ya que no tengo una tarjeta gráfica ATI/AMD para probar esto y no tengo experiencia con tales tarjetas gráficas, pero por lo que he leído, debería funcionar con gráficos ATI/también AMD. .

Esto es Chromium de los repositorios de Ubuntu (18.04) sin decodificación de video acelerada por GPU reproduciendo un video de YouTube de 1080p:

El mismo video de YouTube de 1080p que se reproduce en Chromium con el parche VA API y la decodificación de video acelerada por hardware en Ubuntu 18.04:

Observe el uso de la CPU en las capturas de pantalla. Ambas capturas de pantalla fueron tomadas en mi antiguo pero aún bastante poderoso escritorio. En mi computadora portátil, el uso de la CPU de Chromium es mucho mayor sin aceleración de hardware.

El parche para agregar compatibilidad con VA API para Chromium en Linux, titulado "Habilitar VAVDA, VAVEA y VAJDA en Linux solo con VAAPI ' se envió originalmente a Chromium hace más de un año, pero aún no se ha fusionado.

Chrome proporciona una opción para anular la lista de representación del software (#ignore-gpu-blacklist ), pero esta opción no habilita la decodificación de video acelerada por hardware. Después de habilitar esta opción, cuando visite puede encontrar:chrome://gpu :“Descodificación de video:hardware acelerado ', pero eso no significa que realmente funcione. Abra un video HD en YouTube y verifique el uso de la CPU en una herramienta como htop (Esto es lo que uso en las capturas de pantalla anteriores para verificar el uso de la CPU):debería ver un uso alto de la CPU porque la decodificación de video GPU no está habilitada. También hay una sección a continuación donde puede verificar que realmente está utilizando decodificación de video acelerada por hardware. [[Editar]]Eso ya no es cierto. Google Chrome y otros navegadores web basados ​​en Chromium ahora ofrecen compatibilidad con la API de VA de forma predeterminada. Sin embargo, no está habilitado de forma predeterminada. Para obtener más información, consulte:Cómo habilitar la decodificación de video acelerada por hardware en los navegadores Google Chrome, Brave, Vivaldi y Opera en Debian, Ubuntu o Linux Mint


Los parches utilizados por las compilaciones Chromium Ubuntu habilitadas para la API de VA que se usan en este artículo están disponibles aquí.

Como beneficio adicional, el uso de Chromium con la API de VA instalada por PPA le brinda compilaciones nativas de Chromium (paquetes DEB reales) en Ubuntu en lugar de las nuevas compilaciones estándar de Snap Chromium que Ubuntu ha impulsado de forma predeterminada.

Instalación y uso del navegador Chromium con compatibilidad con API VA en Ubuntu o Linux Mint

Debe quedar claro para cualquiera que lea esto que Chromium Beta o Dev Branch no se consideran estables. Por lo tanto, puede encontrar errores, puede fallar, etc. Funciona bien en este momento, pero quién sabe qué podría pasar después de una actualización. El uso de los PPA enumerados a continuación sobrescribirá su instalación estable actual de Chromium (si ya está instalada).

Además, los repositorios PPA de Chromium Beta y Dev Branch utilizados en este artículo requieren algunos pasos adicionales si desea habilitar la compatibilidad con Widevine (para que pueda reproducir videos de Netflix y videos de pago de YouTube, etc.), o si necesita funciones como sincronización (esto requiere que registre una clave API y la configure en su sistema). Las instrucciones para realizar estos ajustes se proporcionan en la etiqueta PPA de Chromium Dev Branch.

Para gráficos Nvidia, el controlador de gráficos vdpau debe actualizarse para implementar vaQuerySurfaceAttributes. Por lo tanto, se requiere un controlador vdpau-va parcheado para usar esto con Nvidia. Afortunadamente, el PPA de Chromium-dev proporciona este paquete parcheado y lo vincularé para que lo descargues manualmente en caso de que quieras usar el PPA beta.

Chromium con el parche VA API también está disponible para algunas otras distribuciones de Linux en repositorios de terceros, por ejemplo, Arch Linux (para Nvidia necesita el controlador libva-vdpau parcheado), por ejemplo. Si no está utilizando Ubuntu o Linux Mint, deberá encontrar estos paquetes usted mismo.

1. Agregue el PPA para Chromium con compatibilidad con la API de VA.

Chromium con soporte VA API está disponible en dos repositorios PPA:uno con Chromium Beta y otro con Chromium Dev. ¡Elija uno de los 2 (y solo agregue uno)! El PPA beta debería ser más estable.

Para agregar el PPA de la rama Chrome Beta e instale el navegador Chromium en Ubuntu, Linux Mint y versiones de Ubuntu o Linux Mint como Xubuntu, Kubuntu, Ubuntu MATE, Lubuntu, Linux Mint MATE, etc. con:

sudo add-apt-repository ppa:saiarcot895/chromium-beta

Puede agregar el PPA de la rama de desarrollo de Chrome e instale la última compilación de desarrollo del navegador Chromium en Ubuntu o Linux Mint (y otras distribuciones de Linux basadas en Ubuntu, incluidas las versiones elementales, así como Ubuntu o Linux Mint como Xubuntu, Kubuntu, Ubuntu MATE, Linux Mint MATE, etc.) con:

sudo add-apt-repository ppa:saiarcot895/chromium-dev

2. Corrija el PPA con una prioridad de 1001.

La versión de Chromium del PPA se puede sobrescribir con una actualización de Ubuntu. Para evitar esto, podemos asignar una prioridad de 1001 a los paquetes de Chromium VAAPI PPA (donde 500 es el estándar para Ubuntu y> 1000 significa que los paquetes se instalarán incluso si cambia a una versión anterior) para que los paquetes del PPA no se sobrescriban con todas las actualizaciones de Ubuntu, y se pueden instalar incluso si la versión del sistema es más nueva. Haremos esto de la siguiente manera.

  • para el PPA Beta:

Ejecute esto en una terminal:

sudo nano /etc/apt/preferences.d/saiarcot895-chromium-beta-pin-1001

Y pega lo siguiente:

Package: *
Pin: release o=LP-PPA-saiarcot895-chromium-beta
Pin-Priority: 1001

Ahora guarde el archivo y salga (en nano guarde con Ctrl + o , luego salga con Ctrl + x ).

  • para el PPA de desarrollo:

Ejecute esto en una terminal:

sudo nano /etc/apt/preferences.d/saiarcot895-chromium-dev-pin-1001

Y pega lo siguiente:

Package: *
Pin: release o=LP-PPA-saiarcot895-chromium-dev
Pin-Priority: 1001

Ahora guarde el archivo y salga (en nano guarde con Ctrl + o , luego salga con Ctrl + x ).

3. Instale el navegador Chromium desde el PPA Saiarcot895 (VA-API):

sudo apt update
sudo apt install chromium-browser

4. Instale el controlador API de VA

Para las tarjetas gráficas Intel Gen 7 y anteriores, necesita el i965-va-driver-shaders Paquete (puede que ya esté instalado):

sudo apt install i965-va-driver-shaders

Para Intel Graphics Gen 8 y posteriores:

sudo apt install intel-media-va-driver-non-free

Para controladores Nouveau y AMD (no tengo gráficos AMD, así que no puedo probar esto; no funcionó para mí en Nouveau, así que tuve que usar los controladores patentados de Nvidia, pero tal vez funcione para usted) :
sudo apt install mesa-va-drivers
Para las tarjetas gráficas Nvidia que utilizan los controladores patentados, necesita el parche vdpau-va-driver del PPA de Chromium Dev. Una vez que haya agregado Chromium Dev PPA, puede instalarlo con este comando (para versiones de Ubuntu hasta 20.04):

sudo apt install vdpau-va-driver

Para aquellos que usan Ubuntu 20.10 o 21.04 (para quienes este paquete no se ha subido al PPA) , puede descargar el parche vdpau-va-driver Paquete DEB desde aquí (también necesita libvdpau1) e instálelo manualmente. Funciona no solo en Ubuntu 20.04, sino también en 20.10 y 21.04.

5. Habilite la opción de video acelerado por hardware en Chromium.

Copie y pegue lo siguiente en la barra de URL de Chrome:chrome://flags/#enable-accelerated-video-decode (o busca el Hardware-accelerated video decode Opciones en chrome://flags ) y habilitarlo. [[Editar]]Este indicador ya no necesita habilitarse con Chromium 91 y versiones posteriores (y ya no está disponible en la lista de indicadores). A continuación, compruebe también la lista de reproducción de software de sobrescritura:chrome://flags/#ignore-gpu-blocklist . Cuando termines, reinicia el navegador Chromium.

Una compilación predeterminada de Google Chrome/Chromium mostrará esta opción como no disponible, pero ahora puede habilitarla ya que usamos la compilación Chromium habilitada para VA-API.

6. Instale la extensión de cromo h264ify. Si esta extensión no funciona para usted, instale en su lugar Enhanced-h264ify.

YouTube (y probablemente algunos otros sitios también) usan códecs de video VP8 o VP9 de forma predeterminada, y muchas GPU no admiten la decodificación de hardware para este códec. La extensión h264ify obliga a YouTube a usar H.264 en lugar de VP8/VP9, que debería ser compatible con la mayoría de las GPU.

Esta extensión también puede bloquear videos de 60 fps, lo cual es útil en computadoras de gama baja.

Puede verificar el códec utilizado por un video de YouTube haciendo clic con el botón derecho en el video y . selecciona Stats for nerds . Con la extensión h264ify habilitada, debería ver avc/mp4a como códecs. Sin esta extensión, el códec debería ser algo así como vp09/opus. [[Editar]]Usuarios de Nvidia: el controlador vdpau-va parcheado mencionado anteriormente ya no acelera VP9 en navegadores basados ​​en Chromium. Por lo tanto, debe usar la extensión h264ify y evitar VP9 para obtener una decodificación de video acelerada por hardware.7. A partir de Chromium 76, debe usar el navegador Chromium con el --use-gl=desktop Bandera para deshabilitar ÁNGULO. Sin esto, la decodificación de video acelerada por hardware no funcionará. [[Editar]]Para Chromium 91 y versiones posteriores, también necesita el VDAVideoDecoder Bandera.
Por lo tanto, debe iniciar el navegador Chromium de esta manera:

chromium-browser --use-gl=desktop --enable-features=VaapiVideoDecoder
Puede copiar el archivo de escritorio de Chromium desde /usr/share/applications/ a ~/.local/share/applications/ y cambia su Exec línea para incluir esta bandera. De esa forma, al iniciar el navegador Chromium, usará automáticamente esta marca (y no se sobrescribirá con las actualizaciones):
cp /usr/share/applications/chromium-browser.desktop ~/.local/share/applications/

sed -i 's/Exec=chromium-browser %U/Exec=chromium-browser --use-gl=desktop --enable-features=VaapiVideoDecoder %U/' ~/.local/share/applications/chromium-browser.desktop

Cómo verificar si Chromium está usando la decodificación de video GPU

Abre un video en YouTube. Luego presiona Ctrl + Shift + i para abrir Chrome DevTools. En el menú de 3 puntos verticales, haz clic en More tools -> Media . Luego haga clic en el título del video en el panel lateral izquierdo de DevTools (Players sección) y busque en el Video Decoder Sección de Media Pestaña Chrome DevTools:

Cuando dice que el nombre del decodificador es VideoDecode Accelerator o VDAVideoDecoder (anteriormente era MojoVideoDecoder , y antes de eso era GpuVideoDecoder , por lo que si obtiene uno de estos y está utilizando una versión anterior del navegador, está bien, tiene aceleración de hardware) y Hardware decoder es true , luego use la decodificación de video acelerada por hardware. Si dice FFmpegVideoDecoder , VpxVideoDecoder o Dav1dVideoDecoder (y en este caso el Hardware decoder debería decir false ) su navegador web no utiliza decodificación de video acelerada por hardware.

Si no funciona, puede intentar depurarlo ejecutando chromium-browser desde la línea de comando y vea si ve algún error relacionado con la API de VA. También puede ejecutar vainfo (Instálelo en Ubuntu o Linux Mint:sudo apt install vainfo ) y vdpauinfo (para Nvidia; instálelo en Ubuntu o Linux Mint:sudo apt install vdpauinfo ) y vea si obtiene un error.Nota importante:si luego ve una imagen de video completamente blanca (pero ve MojoVideoDecoder), marque chrome://flags y asegúrese de que Vulkan no esté marcado allí. Si Vulkan está habilitado, pero el navegador con el que comienza es --use-gl=desktop opción hace que esto suceda.

Cómo eliminar Chromium con parches VA API y usar versiones estables oficiales de Ubuntu/Linux Mint Chromium

Si desea eliminar por completo las compilaciones de API de Chromium con VA de su sistema y volver a las compilaciones oficiales del navegador Chromium estables de Ubuntu/Linux Mint, puede eliminar el PPA.

Para limpiar un PPA, necesita la utilidad PPA Cleaner, que se puede instalar de la siguiente manera:

sudo apt install ppa-purge

Luego, elimine el PPA de Chromium agregado:

  • APP Beta de Chrome:
sudo ppa-purge ppa:saiarcot895/chromium-beta

  • PPA de desarrollo de cromo:
sudo ppa-purge ppa:saiarcot895/chromium-dev

Además, eliminemos el archivo de configuración de APT que usamos para anclar este PPA, ya que ya no hace nada:

sudo rm /etc/apt/preferences.d/saiarcot895-chromium-*-pin-1001


Debian
  1. Cómo instalar Cinnamon en Debian 9

  2. Instale Debian 11 Bullseye en Docker CE para probarlo

  3. Debian anuncia COVID-19 Biohackathon

  4. Cómo instalar y configurar Redis en Debian 9

  5. Cómo instalar el editor de texto Atom en Debian 11

CÓMO:Ejecutar Linux en Android sin root

Cómo instalar RockyLinux 8.4

Los mejores servicios gratuitos en la nube para escritorio Linux

Cómo montar una unidad exFAT en Ubuntu

Cómo usar PostgreSQL con la aplicación Ruby on Rails

Cómo instalar X-Cart con Nginx y Lets Encrypt SSL en Ubuntu 18.04 LTS