Hardware Accelerated Video di mpv Menggunakan Intel HD3000

Hardware video acceleration memungkinkan video card untuk mengolah video yang pada akhirnya meringankan kerja CPU dan menghemat daya.
Ada beberapa cara untuk mencapai percepatan video menggunakan perangkat keras di Linux, yakni VA-API, VDPAU, dan XvMC.
Dalam artikel ini saya akan menjabarkan bagaimana menghidupkan fitur hardware acceleration VA-API di ThinkPad T520 yang menggunakan IGP HD3000, dan menggunakan VA-API ini di mpv.

Pertama, periksa apakah VA-API telah jalan. Cara paling mudah adalah dengan menjalankan berkas video menggunakan mpv di terminal. Jika terdapat Using hardware decoding (vaapi) dalam log, berarti VA-API telah aktif.
Jika mpv tidak terpasang, gunakan perintah vainfo. Dan jika ada informasi mengenai VA-API, berarti hardware acceleration telah aktif.

Jika ternyata VA-API belum aktif, maka kita perlu pasang paket-paket yang dibutuhkannya untuk aktif. Di Debian Sid yang saya pakai, paket-paket tersebut dapat dipasang menggunakan perintah berikut:

sudo aptitude install i965-va-driver gstreamer1.0-vaapi vainfo

Berikut output dari perintah sudo vainfo, dan ketika menjalankan berkas video menggunakan mpv, yang mengindikasikan bahwa hardware acceleration teleh berjalan.

iza@sid:~$ sudo vainfo
[sudo] password for iza: 
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva )
vainfo: Driver version: Intel i965 driver for Intel(R) Sandybridge Mobile - 1.8.2
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
iza@sid:~$ mpv '/home/iza/Videos/Bollywood/Best Of Shahrukh Khan (2011).mkv' 
Playing: /home/iza/Videos/Bollywood/Best Of Shahrukh Khan (2011).mkv
 (+) Video --vid=1 (*) (h264)
 (+) Audio --aid=1 (*) (dts)
 (+) Subs  --sid=1 (*) (hdmv_pgs_subtitle)
     Subs  --sid=2 (hdmv_pgs_subtitle)
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
AO: [pulse] 48000Hz 5.1(side) 6ch float
Using hardware decoding (vaapi).
VO: [opengl] 1920x816 vaapi
AV: 00:00:01 / 02:48:01 (0%) A-V:  0.000

Setelah memastikan VA-API aktif, sekarang saatnya mengatur agar mpv menggunakannya secara default.
Buka berkas konfigurasi mpv di $HOME/.config/mpv/mpv.conf dan tambahkan baris berikut:

profile=opengl-hq
hwdec=vaapi

Simpan dan jalankan mpv.
Menurut pengamatan saya, VA-API menurunkan penggunaan CPU oleh mpv ketika memutar video full HD dari 12% ke 1%. Not bad, but YMMV...
Untuk pengaturan konfig mpv lebih lanjut bisa merujuk gist ini: https://github.com/Argon-/mpv-config/blob/master/mpv.conf.