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.