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.