
A hardveresen támogatott videólejátszás bekapcsolásával a videólejátszástól tehermentesíteni lehet a CPU-t, mert a dekódolási munkát a GPU végzi. Ezzel a videólejátszás folyamatosabb lehet és kevesebb energiát is fogyaszt.
A számítógépben lévő grafikuskártyától függően, az alábbi lehetőségek adottak:
- Video Acceleration API (VA-API) egy egységesített felület és nyílt forráskódú programkönyvtár a hardveresen gyorsított videó-lejátszáshoz és -készítéshez. Az Intel fejlesztése.
- Video Decode and Presentation API for Unix (VDPAU) egy nyílt forráskódú programkönyvtár és alkalmazásprogramozási interfésze (API) amivel a a videólejátszási feladatok egy része átterhelhető a GPU hardverre. Az NVIDIA fejlesztése.
- NVDECODE/NVENCODE - Az NVIDIA tulajdonosi alkalmazásprogramozási interfésze (API) a hardveresen gyorsított videó-lejátszáshoz és -készítéshez. Az NVIDIA GPU- működik csak a Fermi kódjelű kártyáktól kezdve. Az NVIDIA fejlesztése.
A Video Acceleration API (VA-API) lehetővé teszi a hardveresen gyorsított videódekódolást és -dekódolást különböző műveletek (VLD, IDCT, mozgáskompenzáció stb.) és a a napjainkban elterjedt kódolási szabványokhoz (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264 és VC-1/WMV3). Interfészt biztosítja a mai GPU-k videódekódolási képességeinek teljes körű kiaknázásához. Linux alatt ez a legszélesebb körben támogatott eljjárás.
AMD és Intel gyártmányok, valamint a nyílt forráskódú illesztőprogramot használó NVIDIA gyártmány esetén közvetlenül használható a VA-API. Linux-on jelenleg a VA-API támogatását több csomag valósítja meg, gyártók szerint ezek a következőek:
AMD Radeon , NVIDIA nyílt forráskódú illesztőprogramok
AMDGPU és Radeon és nouveau
A mesa-va-drivers csomag
Ezek a könyvtárak biztosítják a videó gyorsító API-t (VA-API) Unix számára. Gyorsított videolejátszást és videó utófeldolgozást biztosítanak a támogatott grafikus kártyák számára. Ez a csomag lehetővé teszi a VA-API támogatását egyes gallium illesztőprogramok számára.
Támogatott illesztőprogramok: amdgpu, radeon, nouveau
Telepítés AMD AMDGPU és Radeon illesztőprogram esetén:
sudo apt install mesa-va-drivers libva2 vainfo
Telepítés NVIDIA nouveau illesztőprogram esetén:
sudo apt install mesa-va-drivers libva2 vainfo
Intel
Intel G45 & HD Graphics hardvercsalád
Az i965-va-driver és az i965-va-driver-shaders csomagok
Ez a csomag tartalmazza az Intel G45 lapkakészletekhez és az Intel Core processzorcsaládhoz tartozó Intel HD Graphics-hoz tartozó videó dekódoló és kódoló illesztőprogramokat. A támogatott platformok a következők:
- Cantiga, Intel GMA 4500MHD (GM45)
- Ironlake, Intel HD Graphics a 2010-es Intel Core processzorcsalád számára
- Sandy Bridge, Intel HD Graphics a 2011-es Intel Core processzorcsalád számára
- Ivy Bridge
- Haswell
- Broadwell
- Skylake
- Kaby Lake
- Coffee Lake
- Cannon Lake
Telepítés Intel G45 lapkakészletekhez és az Intel Core processzorcsaládhoz tartozó Intel HD Graphics-hoz illesztőprogram esetén:
sudo apt install i965-va-driver i965-va-driver-shaders libva2 vainfo
Intel GEN8+ Graphics hadvercsalád
Az intel-media-va-driver-non-free és az intel-media-va-driver-non-free csomagok
Ez a csomag az Intel Core processzorcsalád Intel HD Graphics processzoraihoz tartozó videó dekódoló és kódoló illesztőprogramokat tartalmazza. A támogatott platformok a következők:
- Broadwell
- Skylake
- Broxton
- Apollo Lake
- Kaby Lake
- Coffee Lake
- Whiskey Lake
- Cannon Lake
- Ice Lake
Telepítés Intel G45 lapkakészletekhez és az Intel Core processzorcsaládhoz tartozó Intel HD Graphics-hoz illesztőprogram esetén:
sudo apt install intel-media-va-driver intel-media-va-driver-non-free libva2 vainfo
NVIDIA zárt illesztőprogramok
A vdpau-va-driver csomag
A zárt NVIDIA illesztőprogram nem támogatja a VA-API-t, csak a VDPAU-t. A Video Decode and Presentation API for Unix (VDPAU) egy nyílt forráskódú programkönyvtár és alkalmazásprogramozási interfésze (API) amivel a a videólejátszási feladatok egy része átterhelhető a GPU hardverre. Az NVIDIA fejlesztése. Zárt forráskódú NVIDIA illesztőprogram esetén használható a VDPAU hívásokat VA-API hívásokká alakító illesztőprogram, a vdpau-va-illesztőprogram.
sudo apt install vdpau-va-driver libva2 vainfo
Az összes illesztőprogram telepíthető a „va-driver-all” csomag telepítésével.
VDPAU telepítése
Amennyiben nem a VA-API-t kívánja a hardveresen gyorsított videólejátszáshoz használni.
A VDPAU telepíthető a Mesa illesztőprogramok esetében a következő módon:
sudo apt install libvdpau1 mesa-vdpau-drivers
A VDPAU telepíthető a NVIDIA zárt illesztőprogramok esetében a következő módon:
sudo apt install libvdpau1 nvidia-vdpau-driver
Az összes illesztőprogram telepíthető a „vdpau-driver-all” csomag telepítésével.
VA-API információk lekérdezése
Az információk lekérdezésével megtudhatja, hogy a videólejátszó hardver milyen formátumok lejátszását tudja hardveresen gyorsítani.
A VA-API információs eszköz telepítése:
apt install vainfo
Futtassuk a parancsot:
vainfo
Az általa kinyerhető információk:
error: XDG_RUNTIME_DIR not set in the environment. libva info: VA-API version 1.7.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so libva info: Found init function __vaDriverInit_1_7 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.7 (libva 2.6.0) vainfo: Driver version: Mesa Gallium driver 20.0.8 for AMD Radeon RX 5700 XT (NAVI10, DRM 3.37.0, 5.7.1-050701-generic, LLVM 10.0.0) vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc
Példa egy régebbi videokártya szerényebb képességeire:
vainfo libva info: VA-API version 1.7.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_7 libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed libva info: va_openDriver() returns 1 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_1_6 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.7 (libva 2.6.0) vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 2.4.0 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD
Látható, hogy míg az előbbi 5700XT GPU-val szerelt kártya képes például a Youtube által használt H264, VP9 formátumokat is gyorsítani, a HEVC és VC1 mellett, addig a szerényebb képességekkel rendelkező Haswell Mobile GPU a VP9 formátumot sem támogatja. Ebből is látható, hogy fontos megnézni, hogy pontosan az adott eszköz hardveresen milyen formátumokat támogat.
VDPAU információk lekérdezése
Az információk lekérdezésével megtudhatja, hogy a videólejátszó hardver milyen formátumok lejátszását tudja hardveresen gyorsítani.
A VDPAU információs eszköz telepítése:
apt install vdpauinfo
Futtassuk a parancsot:
vdpauinfo
Az általa kinyerhető információk:
display: :0 screen: 0 API version: 1 Information string: G3DVL VDPAU Driver Shared Library version 1.0 Video surface: name width height types ------------------------------------------- 420 16384 16384 NV12 YV12 422 16384 16384 UYVY YUYV 444 16384 16384 Y8U8V8A8 V8U8Y8A8 Decoder capabilities: name level macbs width height ---------------------------------------------------- MPEG1 --- not supported --- MPEG2_SIMPLE 3 65536 4096 4096 MPEG2_MAIN 3 65536 4096 4096 H264_BASELINE 52 65536 4096 4096 H264_MAIN 52 65536 4096 4096 H264_HIGH 52 65536 4096 4096 VC1_SIMPLE 1 65536 4096 4096 VC1_MAIN 2 65536 4096 4096 VC1_ADVANCED 4 65536 4096 4096 MPEG4_PART2_SP 3 65536 4096 4096 MPEG4_PART2_ASP 5 65536 4096 4096 DIVX4_QMOBILE --- not supported --- DIVX4_MOBILE --- not supported --- DIVX4_HOME_THEATER --- not supported --- DIVX4_HD_1080P --- not supported --- DIVX5_QMOBILE --- not supported --- DIVX5_MOBILE --- not supported --- DIVX5_HOME_THEATER --- not supported --- DIVX5_HD_1080P --- not supported --- H264_CONSTRAINED_BASELINE 0 65536 4096 4096 H264_EXTENDED --- not supported --- H264_PROGRESSIVE_HIGH --- not supported --- H264_CONSTRAINED_HIGH --- not supported --- H264_HIGH_444_PREDICTIVE --- not supported --- HEVC_MAIN 186 139264 8192 4352 HEVC_MAIN_10 186 139264 8192 4352 HEVC_MAIN_STILL --- not supported --- HEVC_MAIN_12 --- not supported --- HEVC_MAIN_444 --- not supported --- Output surface: name width height nat types ---------------------------------------------------- B8G8R8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8 R8G8B8A8 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8 R10G10B10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8 B10G10R10A2 16384 16384 y NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A8I8 I8A8 Bitmap surface: name width height ------------------------------ B8G8R8A8 16384 16384 R8G8B8A8 16384 16384 R10G10B10A2 16384 16384 B10G10R10A2 16384 16384 A8 16384 16384 Video mixer: feature name sup ------------------------------------ DEINTERLACE_TEMPORAL y DEINTERLACE_TEMPORAL_SPATIAL - INVERSE_TELECINE - NOISE_REDUCTION y SHARPNESS y LUMA_KEY y HIGH QUALITY SCALING - L1 y HIGH QUALITY SCALING - L2 - HIGH QUALITY SCALING - L3 - HIGH QUALITY SCALING - L4 - HIGH QUALITY SCALING - L5 - HIGH QUALITY SCALING - L6 - HIGH QUALITY SCALING - L7 - HIGH QUALITY SCALING - L8 - HIGH QUALITY SCALING - L9 - parameter name sup min max ----------------------------------------------------- VIDEO_SURFACE_WIDTH y 48 4096 VIDEO_SURFACE_HEIGHT y 48 4096 CHROMA_TYPE y LAYERS y 0 4 attribute name sup min max ----------------------------------------------------- BACKGROUND_COLOR y CSC_MATRIX y NOISE_REDUCTION_LEVEL y 0.00 1.00 SHARPNESS_LEVEL y -1.00 1.00 LUMA_KEY_MIN_LUMA y LUMA_KEY_MAX_LUMA y
https://directory.fsf.org/wiki/VDPAU_info_tool
A GPU használat ellenőrzése
A videókártya GPU használata alapján látható, hogy a rendszer a CPU-t vagy a GPU-t használja a videólejátszáshoz. A CPU használat és load értékek megtekinthetőek a „top” és „htop” alkalmazásokban. A GPU használatához az adott GPU-hoz szabott szeközt használhatja.
AMD Radeon GPU
AMD Radeon GPU esetében a „radeontop” amelyet telepíthet, a
sudo apt install radeontop
paranccsal, majd pedig futtathat a:
sudo radeontop
paranccsal.
Intel GPU
Intel GPU esetében a „sudo intel_gpu_top” amelyet telepíthet, a
sudo apt install intel-gpu-tools
paranccsal, majd pedig futtathat a:
sudo sudo intel_gpu_top
paranccsal.
Beállítások a lejátszó szoftverekben
MVP alapú lejátszók
Az MVP alapú lejátszók (MVP, Hypnotix) számára lehetőség van a
hwdec=vaapi
beállítás elvégzésére a VAAPI beállytás támogatására. Ez azonban az MVP dokumentációja szerint nem támogatott:
A HW-dekódolás állandó engedélyezése a konfigurációs fájlban nem javasolt. Ha az Ubuntu csomagot használja, törölje az /etc/mpv/mpv.conf állományt, mivel a csomag a hwdec=vaapi beállításával megpróbálja alapértelmezés szerint engedélyezni a hardver dekódolást (ami nem ideális, és még az optimálistól eltérő wrapperek használatát is okozhatja). Vagy legalább változtassa meg
hwdec=auto-safe
beállításra.
FFmpeg alapú lejátszók
FFmpeg-ben terminálban megadható a VA-API használata, az alábbi terminállal parancssori kapcsolóval:
ffmpeg -hwaccel vaapi
- Hardware video acceleration#Verifying VA-API
- Firefox hardware video acceleration