sábado, 2 de febrero de 2013

La reproducción de vídeo digital (II)

En este segundo artículo veremos como se consigue reproducir vídeo digital en H.264, el formato de compresión más extendido actualmente, de forma fluida (sin saltos, de forma suave y sin cargar excesivamente el microprocesador), con el sistema operativo Windows y con Linux Ubuntu, una de las distribuciones de Linux más extendida. 

Para que la reproducción sea fluida y el microprocesador (CPU) no dedique toda su capacidad a la descompresión y reproducción de vídeo  necesitamos una tarjeta gráfica que "ayude" a descomprimir el vídeo. Sin esta combinación: tarjeta gráfica + CPU: o el vídeo no se verá fluido y/o la CPU irá tan cargada, que no podremos hacer otra cosa mientras el vídeo se esté reproduciendo.

Dejaremos para un artículo posterior, como es la reproducción de vídeo desde el complemento Flash Player de Adobe incrustado en un navegador de Internet, en este caso conseguir una reproducción fluida es más complejo, entre otras razones porque el vídeo viene de Internet.

Cómo reproductor de vídeo vamos a elegir el reproductor libre VLC Media Player disponible para diferentes sistemas operativos y con muchos códecs integrados: MPEG-2, DivX, H.264, MKV, WebM, WMV, MP3, ... con lo cual en la mayoría de casos, no hará falta instalar códecs adicionales, para poder ver muchos formatos de vídeo comprimido. 

Nos centraremos en las tarjetas gráficas NVidia y ATI. En el caso de NVidia, su tecnología de aceleración de vídeo, se llama Pure Video, en este enlace están también las diferentes generaciones de tarjetas GeForce que soportan Pure Video. En el caso de ATi, la tecnología de aceleración de vídeo, se llama Unified Video Decoder, en este enlace están también las diferentes generaciones de tarjetas Radeon que soportan Unified Video Decoder. 

Tanto con una tarjeta NVidia con soporte para Pure Video, cómo con una tarjeta ATI con soporte para Unified Video Decode, para descomprimir de forma fluida vídeo H.264 en Windows con VLC, necesitamos tener instalada la versión 2.0 de DirectX Video Acceleration (DXVA).  La versión 2.0 de DXVA viene por defecto instalada a partir de Windows Vista.

En Linux Ubuntu, además de una tarjeta NVidia con soporte Pure Video ó una tarjeta ATI con soporte Unified Video Decoder, necesitamos tener instalados los Ubuntu restricted extras

sudo apt-get install ubuntu-restricted-extras

Para ambos casos (NVidia y ATI) necesitamos tener instalada la VA API (Video Acceleration API) y en el caso de NVidia, además necesitamos tener instalada la VDPAU (Video Decode and Presentation API for Unix) .

Vamos a ver con más detalle cómo es la instalación en Ubuntu a partir de la versión 11.04 con tarjetas NVidia.

En primer lugar hemos de instalar los drivers propietarios de NVidia:

sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current

Ahora hace falta reiniciar el sistema.

En el caso de tarjetas ATI, el proceso para instalar el driver propietario de ATI, es más tedioso, para ello usaremos el apartado 3 de esta guía de Ubuntu.

A continuación para NVidia, las VAAPI, las VDPAU y el reproductor VLC:

sudo apt-get install -y vainfo vdpau-va-driver vlc

Con vapinfo desde el Terminal, podemos per si la instalación de VPDAU ha sido exitosa:

(...)
libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA-API version: 0.32 (libva 1.0.15)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG4Simple            : VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
(...)

Y para ATI, las VAAPI y VLC:

sudo apt-get install xvba-driver vlc

Una vez tenemos todos los requisitos satisfechos, no hemos de olvidar activar en VLC dentro de Herramientas -> Preferencia -> Entrada y Códecs Use GPU Acceleration Decode .

Para estar seguros de que todo ha ido bien, podemos desde el Terminal ejecutar VLC con un video H.264, si no disponemos de ningún vídeo H.264 a mano podemos descargar el corto de 2008 Big Buck Bunny en formato H.264.

Al ejecutar desde el Terminal:

vlc -v video_H264

y hemos de ver en la salida:

(...)
libva: VA-API version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
[0x7fe950c05918] avcodec decoder: Using VA API version 0.32 for hardware decoding.
(...)

En el próximo artículo veremos como es la reproducción de video através del plugin Flash Player de Adobe incrustado en Mozilla Firefox ó en Google Chrome. 

Si te ha gustado este artículo pro favor pulsa +1 y suscríbete a mi canal de Youtube.

No hay comentarios: