Martes, Septiembre 18, 2018

Cómo habilitar la decodificación de vídeo acelerada por hardware en Chromium en Ubuntu o Linux Mint

chromium-hardware-acceleration-enabled

Es posible que hayas notado que ver vídeos HD desde Youtube y otros sitios web similares en los navegadores Google Chrome o Chromium en Linux aumenta considerablemente el uso de la CPU y, si utilizas un portátil, se calienta mucho y la batería se agota rápidamente. Eso es porque Chrome/Chromium (Firefox también, pero no hay forma de forzar esto) no es compatible con la decodificación de vídeo acelerada por hardware en Linux.

Este artículo explica cómo instalar una versión de desarrollo de Chromium que incluye un parche que habilita VA-API en Linux, brindando soporte para decodificación de vídeo acelerada por GPU, lo que debería disminuir significativamente el uso de la CPU al ver videos HD en línea. Las instrucciones solo cubren tarjetas gráficas Intel y Nvidia, ya que no tengo una tarjeta gráfica ATI/AMD para probar esto, ni tengo experiencia con tales tarjetas gráficas.

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

chromium-default-no-accel

El mismo vídeo 1080p de YouTube reproduciéndose en Chromium con el parche VA-API y la decodificación de vídeo acelerada por hardware habilitada en Ubuntu 18.04:

chromium-hardware-acceleration-enabled

Observa el uso de la CPU en las capturas de pantalla. Ambas capturas de pantalla fueron tomadas en mi viejo pero aún bastante poderoso escritorio. En mi portátil, el uso de la CPU Chromium sin aceleración de hardware va mucho más allá.

El parche para agregar soporte de VA-API a Chromium en Linux, titulado “Activar VAVDA, VAVEA y VAJDA en Linux con VAAPI solamente” fue enviado inicialmente a Chromium hace más de un año, pero aún no se ha fusionado.

Chrome tiene una opción para anular la lista de reproducción del software (# ignore-gpu-blacklist), pero esta opción no habilita la descodificación de vídeo acelerada por hardware. Después de habilitar esta opción, puedes encontrar lo siguiente al visitar chrome://gpu: “Decodificación de video: hardware acelerado”, pero esto no significa que realmente funcione. Abre un video HD en YouTube y verifica el uso de la CPU en una herramienta como htop (esto es lo que estoy usando en las capturas de pantalla anteriores para verificar el uso de la CPU). Deberías ver un alto uso de CPU porque la decodificación de vídeo GPU no está habilitada . También hay una sección a continuación sobre cómo verificar si realmente estás usando decodificación de vídeo acelerada por hardware.

Los parches utilizados por las versiones de Chromium Ubuntu con VA-API habilitado utilizados en este artículo están disponibles aquí.

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

Debería estar claro para todos los que lean esto que Chromium Dev Branch no se considera estable. Por lo tanto, es posible que encuentres errores, que se bloquee, etc. Funciona bien en este momento, pero quién sabe qué puede pasar después de alguna actualización.

Además, Chromium Dev Branch PPA requiere que realices algunos pasos adicionales si deseas habilitar el soporte de Widevine (para que puedas reproducir vídeos de Netflix y vídeos de pago de YouTube, etc.), o si necesitas funciones como Sync (que necesita registrar un Clave API y configurándola en tu sistema). Las instrucciones para realizar estos ajustes se explican en la descripción del PPA de Chromium Dev Branch.

Chromium con el parche VA-API también está disponible para algunas otras distribuciones de Linux, en repositorios de terceros, como Arch Linux (para Nvidia, necesitarás este parche libva-vdpau-driver) por ejemplo. Si no usas Ubuntu o Linux Mint, tendrás que encontrar estos paquetes tú mismo.

1. Instala Chromium Dev Branch con soporte VA-API.

Hay un Chromium Beta PPA con el parche VA-API, pero carece de vdpau-video para Ubuntu 18.04. Si lo deseas, puedes usar el Beta PPA en lugar del Dev PPA que usaré en estas instrucciones, pero si tienes una tarjeta gráfica Nvidia, deberás descargar vdpau-va-driver del Dev PPA, instálalo y asegúrate de que Ubuntu/Linux Mint no actualice este paquete (por lo que esto complica un poco las cosas, no es necesario hacerlo manualmente si planeas usar el Dev PPA siguiendo las instrucciones a continuación).

Puedes agregar el PPA de la rama Chromium Dev e instalar la última versión del desarrollo del navegador Chromium en Ubuntu o Linux Mint (y otras distribuciones de Linux basadas en Ubuntu, incluyendo versiones elementales, así como Ubuntu o Linux Mint como Xubuntu, Kubuntu, Ubuntu MATE, Linux Mint MATE, etc. usando:

sudo add-apt-repository ppa:saiarcot895/chromium-dev
sudo apt-get update
sudo apt install chromium-browser

2. Instalar el controlador VA-API

Para las tarjetas gráficas Intel, deberás instalar el paquete i965-va-driver (puede que ya esté instalado):

sudo apt install i965-va-driver

Para las tarjetas gráficas Nvidia (debe funcionar tanto con los controladores Nouveau de código abierto como con los controladores propietarios de Nvidia), instala vdpau-va-driver:

sudo apt install vdpau-va-driver

3. Habilita la opción de vídeo acelerado por hardware en Chromium.

Copia y pega lo siguiente en la barra de URL de Chrome: chrome://flags/#enable-accelerated-video (o busca la opción de vídeo acelerado por hardware en chrome://flags) y habilítalo, luego reinicia el navegador Chromium.

En una compilación predeterminada de Google Chrome/Chromium, esta opción se muestra como no disponible, pero podrás habilitarla ahora porque hemos utilizado la compilación de Chromium compatible con VA-API.

4. Instala la extensión de Chrome h264ify.

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

Esta extensión también puede bloquear vídeos de 60 fps, útil en máquinas de gama baja.

Puedes verificar el códec utilizado por un vídeo de YouTube haciendo clic derecho en el vídeo y seleccionando Estadísticas para nerds. Con la extensión h264ify habilitada, deberías ver avc / mp4a como los códecs. Sin esta extensión, el códec debería ser algo así como vp09/opus.

Cómo verificar si Chromium está usando decodificación de vídeo GPU

Abre un vídeo en YouTube. A continuación, abre una nueva pestaña en Chromium e ingresa lo siguiente en la barra de URL: chrome://media-internals.

chromium-gpuvideodecoder-linux

En la pestaña chrome://media-internals, haz clic en la url del vídeo (para expandirla), desplázate hacia abajo y busca en Propiedades del reproductor, y debes encontrar la propiedad video_decoder. Si el valor de video_decoder es GpuVideoDecoder, significa que el vídeo que se está reproduciendo actualmente en YouTube en la otra pestaña está utilizando la decodificación de vídeo acelerada por hardware.

Si dice FFmpegVideoDecoder o VpxVideoDecoder, la decodificación acelerada de vídeo no funciona, o tal vez te olvidaste de instalar o deshabilitar la extensión h264ify de Chrome.

Si no funciona, puedes intentar depurarlo ejecutando Chrome-browser desde la línea de comandos y ver si muestra algún error relacionado con VA-API. También puedes ejecutar vainfo (instalarlo en Ubuntu o Linux Mint: sudo apt install vainfo) y vdpauinfo (para Nvidia, instalarlo en Ubuntu o Linux Mint: sudo apt install vdpauinfo) y ver si muestra un error.

 

Fuente:  Original | maslinux

¿Quién está en línea?

Hay 107 invitados y ningún miembro en línea

Contador de Visitas

9356762
Hoy Hoy 949
Ayer Ayer 1443
Esta semana Esta semana 2392
Este mes Este mes 28030
Total de Visitas Total de Visitas 9356762

Día con más
visitantes

09-13-2018 : 2017

Gracias por su visita