GNU/Linux >> Tutoriales Linux >  >> Debian

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

Google Chrome 88 (y más reciente) hizo que la decodificación de video acelerada por hardware esté disponible en Linux, pero no está habilitada de manera predeterminada. Sin embargo, Google Chrome no es el único navegador web basado en Chromium que admite la aceleración de hardware en Linux. Este artículo explica cómo habilitar la decodificación de video acelerada por hardware en los navegadores web Google Chrome, Brave, Vivaldi y Opera que se ejecutan en Debian, Ubuntu, Pop! _OS o Linux Mint (solo Xorg).

El uso de la decodificación de video acelerada por hardware en su navegador web debería resultar en un menor uso de la CPU (y, por lo tanto, menos consumo de batería) al reproducir videos en línea.

Vale la pena señalar que el navegador web Chromium tenía parches que hacían posible que la decodificación de video acelerada por hardware estuviera disponible en Linux durante algún tiempo, y algunas distribuciones de Linux lo han empaquetado con estos parches. Por lo tanto, los usuarios de Chromium han tenido aceleración de hardware en Linux durante algún tiempo, según su distribución de Linux o si instalaron el Chromium parcheado de alguna otra manera. Por ejemplo, en Ubuntu/Linux Mint hay un PPA con compilaciones de Chromium parcheadas por VA-API. Por lo tanto, estas instrucciones también pueden funcionar para el navegador Chromium, dependiendo de cómo esté estructurado.

También me gustaría agregar que estas instrucciones sobre cómo habilitar la decodificación de video acelerada por hardware también funcionan en otras distribuciones de Linux, no solo en las distribuciones de Linux basadas en Debian/Ubuntu, pero los nombres de los controladores son diferentes.

Probé estas instrucciones con el escritorio Ubuntu 20.10 con gráficos Nvidia e instalé los navegadores web que se enumeran a continuación con su paquete original de Ubuntu (con un paquete DEB). También probado con una computadora portátil con gráficos Intel (10ª generación) bajo Ubuntu 20.04 y 20.10. No tengo un dispositivo de gráficos AMD para probar esto.

En mi prueba, pude conseguir que la decodificación de vídeo acelerada por hardware funcionara en Linux con:

  • Google Chrome estable 88
  • Valiente estable 1.19
  • Vivaldi snapshot 3.6 / [Editar] El último Vivaldi Stable 3.6 también funciona
  • Opera Beta 74

Obviamente, aún debería funcionar con versiones más nuevas (es decir, Google Chrome 89, Brave 1.20, etc.).

Para mí, la decodificación de video acelerada por hardware no funcionó con:

  • Vivaldi estable 3.5 . Vivaldi Stable ahora es la versión 36 y tiene decodificación de video acelerada por hardware en funcionamiento
  • Opera estable 73
  • Microsoft Edge:ni siquiera hay un chrome://flags/#enable-accelerated-video-decode Marcar (para habilitar la decodificación de video acelerada por hardware).

Puede usar la API VA en XWayland usando el --use-gl=egl Indicador de línea de comando, pero no lo he intentado . A partir de Google Chrome 91 (y otros navegadores basados ​​en Chromium 91), también necesita el --enable-features=VaapiVideoDecoder Bandera.

[[Editar]]Intenté seguir las instrucciones a continuación y luego usar el navegador con el --use-gl=egl Marca en Wayland, trabajando en una computadora portátil con gráficos Intel y reproducción de video acelerada por hardware. Sin embargo, los videos en esta computadora portátil son espasmódicos con esta configuración. Entonces, en este caso, prefiero usar la reproducción de video acelerada por hardware de Firefox (en la que cuando se usa Wayland y Firefox en la misma computadora portátil, la reproducción de video es fluida, pero el uso de la CPU es mayor que cuando se usa un navegador basado en Chromium).

Cómo habilitar la decodificación de video acelerada por hardware en los navegadores web Google Chrome, Brave, Vivaldi y Opera en Debian, Ubuntu o Linux Mint (X11)

Cosas que necesitará para habilitar la decodificación de video acelerada por hardware en los navegadores web mencionados anteriormente (es decir, Google Chrome 88+, Brave 1.19+, Vivaldi 3.6+ y Opera 74+):

1. Habilite las siguientes banderas del navegador web:

Para navegadores basados ​​en Google Chrome 90 y anteriores:

  • Sobrescribir lista de representación de software:chrome://flags/#ignore-gpu-blocklist
  • Descodificación de video acelerada por hardware:chrome://flags/#enable-accelerated-video-decode

Para navegadores basados ​​en Google Chrome 91 y posteriores (ya no existe la decodificación de video acelerada por hardware, pero necesitamos usar un nuevo indicador de línea de comando; consulte el paso 4):

  • Sobrescribir lista de representación de software:chrome://flags/#ignore-gpu-blocklist

2. Instale el controlador VA API para poder decodificar medios (fuente), así como libva-drm2 y libva-x11-2 (estos 2 probablemente ya estén instalados, pero por si acaso; agregué estos 2 en una edición posterior después de notar que la aceleración de hardware no funciona sin ellos, y una vez que instalé vainfo que contienen estos 2 paquetes como dependencias, sería empezar a trabajar):

  • Para Intel Gen 7 y hardware anterior:

sudo apt install i965-va-driver-shaders libva-drm2 libva-x11-2

  • Para hardware Intel Gen 8+:

sudo apt install intel-media-va-driver-non-free libva-drm2 libva-x11-2

  • Para controladores Nouveau y AMD (No pude hacer que un navegador usara aceleración de hardware con los controladores Nouveau, tal vez tengas mejor suerte):

sudo apt install mesa-va-drivers libva-drm2 libva-x11-2

  • Para controladores patentados de Nvidia – Puede instalarlos desde los repositorios o utilizando el PPA del controlador de GPU patentado (por ejemplo, inicie el cuadro de diálogo Controladores adicionales en Ubuntu e instálelo desde allí). Si está utilizando controladores patentados de Nvidia, necesitará uno parcheado demasiado vdpau-va-driver ([[edit]]Este parche ya no es compatible con VP9, ​​incluso si su gráfico lo admite, por lo que debe usar la extensión h264ify en cualquier caso; consulte a continuación). Puede obtenerlo desde aquí (también necesita libvdpau1 de aquí ya que es una dependencia de vdpau-va-driver) para Debian/Ubuntu/Linux Mint/Pop! _SO, etc. El paquete Ubuntu 20.04 de allí también funciona en Ubuntu 20.10 y posteriores. Si desea ver los parches utilizados por este paquete, descargue el archivo .debian.tar.gz (usando el mismo enlace que arriba) y busque en la carpeta "parches". En caso de que estos DEB no funcionen en Debian (no lo he probado), use estos enlaces para vdpau-va-driver (orig.tar.gz | debian.tar.xz) y libvdau (orig.tar.gz | debian.tar.xz) para descargar los archivos .orig.tar.gz y .debian.tar.xz y crear el paquete DEB en su sistema. También instale libva-drm2 y libva-x11-2:sudo apt install libva-drm2 libva-x11-2

Por qué las versiones no libres del intel-media-va-driver y i965-va-driver ? En teoría, esto debería funcionar con la versión gratuita (?), pero en mi prueba en una computadora portátil Intel Gen 10, la decodificación de video acelerada por hardware solo funcionó con el intel-media-va-driver-non-free Conductor y no intel-media-va-driver (No estoy seguro sobre el controlador i965, pero pensé que podría ser similar). Hay alguien más allí que también dijo que esto hizo que funcionara para ella.

3. Solo se requiere para tarjetas gráficas que no admiten la decodificación de video por hardware VP9:Instale la extensión del navegador h264ify.

Si su tarjeta gráfica no es compatible con la decodificación de video de hardware VP9, ​​instale la extensión del navegador h264ify (o Enhanced-h264ify; algunos usuarios dicen que esto funciona para ellos mientras que la extensión original no; para mí es al revés) y asegúrese de que sea habilitado para VP9.

[[Editar]]Usuarios de Nvidia:el controlador vdpau-va parcheado mencionado anteriormente ya no acelera el hardware VP9 en los 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.

Si todavía no ves el MojoVideoDecoder im chrome://media-internals (Consulte la sección a continuación para verificar que la decodificación de video acelerada por hardware esté habilitada y que el navegador la esté utilizando), intente reiniciar el navegador web después de instalar esta extensión. He visto casos en los que se requería y otros en los que no.

4. Inicie el navegador web con el --use-gl=desktop Marcar para habilitar la aceleración de hardware API VA. [[Editar] Para los navegadores basados ​​en Chromium 91 y superior, también debe iniciarlo con eso --enable-features=VaapiVideoDecoder Bandera.

Para usar la API VA para la decodificación de video, debe iniciar el navegador web, ya sea Chromium, Google Chrome, Brave, Opera o Vivaldi, con el siguiente indicador de línea de comando:--use-gl=desktop . Como resultado, el navegador web usa OpenGL y desactiva ANGLE como el backend de renderizado. Si bien hay lugares donde he leído que esto ya no debería ser necesario, en mi prueba se requería tanto con gráficos Nvidia como Intel (no tengo gráficos AMD para probar esto).

Por ejemplo, para iniciar Google Chrome con esta bandera:

google-chrome-stable --use-gl=desktop

Comienza Brave con esto:

brave-browser --use-gl=desktop

Y así sucesivamente.

Para que este cambio sea permanente, copie el archivo .desktop del navegador desde /usr/share/applications a ~/.local/share/applications (Si esta carpeta no existe, créela). Al copiar el archivo aquí, nos aseguramos de que no se sobrescriba con una actualización. Luego abra el archivo .desktop (por ejemplo, brave-browser.desktop , brave-browser-beta.desktop , google-chrome.desktop , etc.) de él ~/.local/share/applications Ubicación, con un editor de texto. En este archivo, busque la línea que comienza con Exec= y modifique el ejecutable para incluir --use-gl=desktop . P.ej. para valiente:Exec=/usr/bin/brave-browser-stable --use-gl=desktop o para Google Chrome:Exec=/usr/bin/google-chrome-stable --use-gl=desktop %U

[Edición muy importante] Con Chromium 91 (y todos los navegadores basados ​​en él), la bandera del navegador para la decodificación de video acelerada por hardware ha desaparecido. Para obtener reproducción de video acelerada por hardware, debe agregar un nuevo indicador de línea de comando:--enable-features=VaapiVideoDecoder

Agregue esta bandera tal como agrega esa --use-gl=desktop Bandera. Necesitará ambos, o al menos lo que yo necesitaba para obtener la decodificación de video acelerada por hardware.

Por ejemplo, para iniciar Google Chrome con estas dos banderas, use:

google-chrome-stable --use-gl=desktop --enable-features=VaapiVideoDecoder

O inicia Brave en su lugar:

brave-browser --use-gl=desktop --enable-features=VaapiVideoDecoder

Nota importante:si ve una imagen de video completamente blanca al iniciar el navegador con --use-gl=desktop , marque chrome://flags y asegúrese de que Vulkan no esté activado allí. Cuando Vulkan está activado y el navegador se inicia con --use-gl=desktop La opción hace que esto suceda.

Otra nota, esta vez para usuarios de Opera :Si no puede reproducir videos en YouTube y otros sitios después de usar la extensión h264ify, consulte las Soluciones desde aquí para habilitar la compatibilidad con h264 en Opera (tenga en cuenta que si el navegador web que está usando es Opera Beta, la carpeta es /opera-beta ).

Eso es todo.

Cómo verificar que la decodificación de video acelerada por hardware esté habilitada y funcione en cualquier navegador web basado en Chromium

Ahora vamos a comprobar si el navegador web está utilizando decodificación de vídeo acelerada por hardware.

Primero, verifiquemos si el navegador admite video acelerado por hardware. Para hacer esto, abra una nueva pestaña y visite chrome://gpu . En esta página, debería ver "Descodificación de video:hardware acelerado" (en verde, como aquí):

Esto significa que su navegador web ahora es compatible con la decodificación de video acelerada por hardware. Pero, ¿es realmente capaz de decodificar video usando hardware? También comprobemos eso abriendo un video de YouTube y luego presionando Ctrl + Shift + i para abrir Chrome DevTools. En el menú con los 3 puntos verticales, haz clic en More tools -> Media . Luego haga clic en el título del video en la barra lateral izquierda de DevTools (Players Sección) y busca en el Video Decoder Sección del Media Pestaña Herramientas para desarrolladores de Chrome:

Cuando dice que el nombre del decodificador es VideoDecode Accelerator o yo también lo vi así VDAVideoDecoder (antes era MojoVideoDecoder , y antes de eso era GpuVideoDecoder así que si obtiene uno de estos y está usando 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 se llama FFmpegVideoDecoder , VpxVideoDecoder o Dav1dVideoDecoder (y en este caso el Hardware decoder debería decir false ) su navegador web no usa decodificación de video acelerada por hardware.


Debian
  1. Cómo instalar Pip en Ubuntu 18.04, Debian 9 y Linux Mint 19

  2. Cómo ejecutar Google Chrome como root – Ubuntu 11.10 / Linux Mint 12

  3. Cómo instalar Google Chrome 17 en Ubuntu 11.10 / Linux Mint 12

  4. Cómo instalar Google Chrome en Debian y Kali Linux

  5. Cómo compilar e instalar wxWidgets en Ubuntu/Debian/Linux Mint

Cómo deshabilitar la contraseña "Sudo" en Linux Mint 20 y Ubuntu Linux

Cómo borrar la caché de Apt en Debian, Ubuntu y Linux Mint

Cómo instalar NetBeans IDE 12.4 en Ubuntu, Debian y Linux Mint

Diferencias en la interfaz gráfica de usuario de Linux Mint, Ubuntu, Manjaro y Debian Desktop

Cómo instalar NetBeans IDE 12 en Debian, Ubuntu y Linux Mint

Cómo instalar Wine 5.0 en Debian, Ubuntu y Linux Mint