- Pagreitis iki techninė įranga en Linux Tai priklauso nuo VA-API, vairuotojai tinkama ir teisinga naršyklės konfigūracija ir aplinkos kintamieji.
- Labai svarbu įdiegti tinkamą VA-API tvarkyklę (i965/iHD) "Intel", „Mesa“ AMD/Nouveau sistemose) ir su „vainfo“ patikrinkite, kuriuos kodekus GPU iš tikrųjų palaiko.
- „Firefox“ ir „Chromium“ pagrindu veikiančiose naršyklėse reikia įjungti konkrečias žymas ir daugeliu atvejų paleisti naršyklę su papildomais parametrais, kad būtų galima naudoti VA-API.
- Priverstinis H.264 naudojimas naudojant tokius plėtinius kaip „h264ify“ ir GPU naudojimo tikrinimas naudojant tokius įrankius kaip „intel_gpu_top“ arba „DevTools“ užtikrina sklandesnį ir efektyvesnį atkūrimą.

Jei kasdien naudojate „Linux“, tikriausiai pastebėjote, kad naršyklėje leidžiant vaizdo įrašus, įsisuka ventiliatorius, procesoriaus apkrova pasiekia 100 %, o nešiojamas kompiuteris atrodo lyg tuoj tuoj pakils. Tai paprastai yra simptomas, rodantis, kad aparatinės įrangos vaizdo spartinimas Jis netinkamai aktyvuotas: procesorius atlieka darbą, kurį turėtų atlikti GPU, todėl atsiranda daugiau triukšmo, aukštesnė temperatūra ir trumpesnė baterijos veikimo trukmė.
Geros naujienos yra tai, kad šiandien „Firefox“, „Chromium“ ir beveik visi jų dariniai jau turi tikrą VA-API palaikymą ir aparatinės įrangos spartinimą „Linux“ sistemoje, nors tai retai būna gerai suderinta iš karto. Šiame vadove žingsnis po žingsnio ir labai išsamiai apžvelgsime, kaip paruošti tvarkykles, kaip aktyvinti VA-API pagrindinėse naršyklėse ir kaip patikrinti, ar vaizdo įrašas dekoduojamas GPU, o ne CPU.
Kas yra vaizdo aparatūros spartinimas ir kodėl turėtumėte jį įjungti?
Kalbėdami apie aparatinės įrangos spartinimą naršyklėse, turime omenyje sunkaus vaizdo dekodavimo ir apdorojimo darbo perkėlimą GPU, o ne viso to palikimą CPU. Praktiškai tai reiškia, kad leidžiant multimedijos turinį („YouTube“, "Netflix"(pvz., „Twitch“ ir kt.) vaizdo plokštė yra atsakinga už vaizdo kadrų dekompresiją ir apdorojimą, o procesorius yra daug laisvesnis.
Technologija, kuri sujungia programas ir GPU „Linux“ sistemoje vaizdo įrašams, vadinama VA-API (vaizdo spartinimo API) ir yra faktinis standartas „Penguin“ darbalaukyje. Daugelis programų jį palaiko: naršyklės, grotuvai, tokie kaip VLC ar OBS Studio, skirti kodavimui / dekodavimui naudojant vaizdo plokštę, ir net redagavimo bei fiksavimo įrankiai.
Praktiniai tinkamo vaizdo spartinimo privalumai kasdieniame naudojime yra gana aiškūs: mažesnis procesoriaus naudojimas, mažesnės energijos sąnaudos, žemesnė temperatūra ir stabilesnis atkūrimas, ypač nešiojamieji senų arba su kukliais procesoriais (pavyzdžiui, 2C/4T).
Kita vertus, yra tam tikrų trūkumų ir apribojimų, į kuriuos reikėtų atsižvelgti nuo pat pradžių: Daugelis senesnių GPU nebepalaiko šiuolaikinių kodekų, kai kurios naršyklės riboja skiriamąją gebą, kai naudojamas H.264 vietoj VP9/AV1, o laisvas VA-API diegimas gali sukelti artefaktus, žalius ekranus ar tam tikrų vaizdo įrašų mirgėjimą.
Be to, palaikymas „Linux“ sistemoje išlieka šiek tiek subtilesnis nei WindowsTvarkyklių + VA-API + naršyklės derinys ne visada veikia iš pirmo karto, o situacija gali labai skirtis priklausomai nuo to, ar naudojate „Intel“, AMD ar... "NVIDIA ir pagal paskirstymą. Štai kodėl pirmiausia svarbu suprasti, kokią aparatinę įrangą turite, kokias tvarkykles naudojate ir kokius kodekus palaiko jūsų GPU.
Patikrinkite, kokią GPU turite ir kokias tvarkykles naudoja jūsų „Linux“.
Prieš liesdami bet ką „Firefox“ ar „Chromium“, turite tiksliai žinoti, kokią vaizdo plokštę įdiegėte ir kokį tvarkyklę įkelia branduolys. Tai labai svarbu norint pasirinkti tinkamą VA-API paketą ir išvengti retų klaidų vėliau.
Norėdami identifikuoti GPU „Linux“ sistemoje, tiesiog paleiskite terminalas kažkas panašaus į: lspci -k | grep -EA3 'VGA|3D|Display'Išvestyje bus nurodytas kortelės modelis ir branduolio modulis, kurį ji naudoja, pavyzdžiui, „Intel UHD Graphics 600/620“ su tvarkykle. i915.
Jei jūsų kompiuteryje yra tik viena GPU, paprastai matysite įrenginį, pvz., „VGA suderinamas valdiklis“ ir naudojamą tvarkyklę, o jei turite hibridinį nešiojamąjį kompiuterį („Intel iGPU + AMD/NVIDIA dGPU“), bus rodomi du grafikos įrenginiai. Tai svarbu, nes kelių GPU scenarijuose dalyvauja du DRI perteikimo įrenginiai.
Norėdami patvirtinti, kuriuos atvaizdavimo įrenginius turite, išvardykite turinį /dev/dri su: ls /dev/driPaprastame kompiuteryje pamatysite kažką panašaus card0 y renderD128; hibridiniame variante jie taip pat pasirodys card1 y renderD129.
Jei norite žengti dar vieną žingsnį ir sužinoti, kuris tvarkyklė yra susietas su kiekvienu DRI įrenginiu, galite pasikonsultuoti /sys/kernel/debug/dri/128/name, /sys/kernel/debug/dri/129/nameIr tt Pavyzdžiui, failas, kuriame yra „i915“, reiškia, kad šis vaizdavimo mazgas atitinka „Intel iGPU“, o failas su „radeon“, „amdgpu“ arba „nouveau“ reikš sistemos naudojamą AMD arba NVIDIA GPU.
VA-API tvarkyklės „Ubuntu“ ir išvestinėse versijose: „Intel“, AMD ir „NVIDIA“
Kai GPU bus identifikuotas, kitas žingsnis bus įdiegti atitinkamą VA-API tvarkyklę, kad vaizdo plokštė galėtų dekoduoti vaizdo įrašą per aparatinę įrangą. „Debian“ / „Ubuntu“ pagrindu sukurtose distribucijose tai atliekama per apt su keliais pagrindiniais paketais.
„Intel“ GPU iš esmės yra dvi VA-API tvarkyklių šeimos: „klasikinė“ „i965“ ir modernesnė „iHD“ („intel-media-driver“), taip pat paprastai siūlomi nemokami ir „ne nemokami“ variantai. Apytiksliai:
- i965-va-vairuotojasNemokama VA-API tvarkyklė, palaikoma „Cantiga“, „Ironlake“, „Sandy Bridge“, „Ivy Bridge“, „Haswell“, „Broadwell“, „Skylake“, „Kaby Lake“, „Coffee Lake“ ir „Cannon Lake“ kartose.
- i965-va-driver-shaders: patentuotas tų pačių kartų variantas su tam tikrais optimizavimais.
- „Intel Media VA“ tvarkyklėNemokamas VA-API tvarkyklė rekomenduojamas nuo Broadwello (Skylake, Kaby Lake, Coffee Lake, Whiskey Lake, Cannon Lake, Ice Lake, Alchemist, Meteor Lake ir kt.).
- intel-media-va-driver-non-free: patentuota ankstesnės versijos versija, kuri prideda papildomų funkcijų, tokių kaip aparatinės įrangos kodavimas šiuolaikiniuose kodekuose, tokiuose kaip H.265, priklausomai nuo aparatinės įrangos.
Pavyzdžiui, tipiškame nešiojamajame kompiuteryje su „Intel UHD 600/620“ galite įdiegti modernų, patentuotą variantą su: sudo apt install intel-media-va-driver-non-free vainfo. Paketas vainfo Jis naudojamas vėliau patikrinti, kuriuos tikslius kodekus palaiko jūsų GPU.
Po įdiegimo turėtumėte turėti /usr/lib/x86_64-linux-gnu/dri/ failas iHD_drv_video.so (skirta „Intel-media-driver“) arba i965_drv_video.so (skirta 965 m.). Šiuos dvejetainius failus VA-API įkelia viduje, kai naršyklė ar kita programa prašo vaizdo įrašo spartinimo.
AMD Radeon ir NVIDIA GPU, naudojantiems atvirojo kodo „Nouveau“ tvarkyklę, pagrindinis „Ubuntu“ komponentas yra mesa-va-drivers, kuris įdiegia šioms kortelėms reikalingas VA-API posistemes. NVIDIA plokščių su patentuotomis tvarkyklėmis atveju viskas tampa sudėtingiau: pati VA-API nepalaikoma tiesiogiai, o per VDPAU→VAAPI tiltą (pavyzdžiui, su vdpau-va-driver), ir vis dėlto naršyklės šiomis dienomis beveik nepasikliauja VDPAU.
Jei turite hibridinę „Intel + AMD“ arba „Intel + NVIDIA“ sistemą su atvirojo kodo tvarkyklėmis, įprasta praktika yra įdiegti ir „Intel“ (iHD arba i965) skirtą VA-API tvarkyklę, ir mesa-va-driverskad galėtumėte pasirinkti, kuris GPU apdoros vaizdo dekodavimą. Vėliau pamatysime, kaip pasirinkti konkretų DRI įrenginį naudojant aplinkos kintamuosius.
VA-API tvarkyklės Fedoroje ir jų ypatumai su NVIDIA
„Fedora“ sistemoje metodas panašus, tačiau paketų tvarkyklė ir kai kurie konkretūs paketų pavadinimai skiriasi. „Intel“ grafikos sistemoms VA-API palaikymas paprastai apima šių komponentų įdiegimą:
Terminale, turėdami administratoriaus teises, galite naudoti: sudo dnf install libva-intel-driver intel-mediasdk intel-media-driverTai užtikrina, kad turėsite ir klasikinius, ir naujus tvarkykles bei su jomis susijusias bibliotekas.
Jei naudojate AMD Radeon arba NVIDIA su atvirojo kodo „Nouveau“ tvarkykle, VA-API palaikymas yra įtrauktas į paketą. mesa-dri-driverskuris paprastai pagal numatytuosius nustatymus įdiegiamas „Fedora Workstation“. Nepaisant to, kai kuriose sistemose faktinis rezultatas naudojant VA-API AMD/Nouveau gali būti nepastovus arba net nepavykti.
„Fedora“ pranašumas prieš „Ubuntu“ patentuotoje NVIDIA arenoje yra tas, kad VDPAU tiltas VA-API (kaip libva-vdpau-driver) paprastai galima gauti tiesiogiai iš oficialių saugyklų. Pavyzdžiui, galite jį įdiegti su sudo dnf install libva-vdpau-driverTačiau tai negarantuoja, kad naršyklės iš tikrųjų naudos VDPAU.
Norėdami patikrinti, kuriuos kodekus jūsų GPU iš tikrųjų palaiko, naudokite komandą „vainfo“.
Nepakanka įdiegti paketus: reikia žinoti, kokius kodekus ir režimus (kodavimą / dekodavimą) palaiko jūsų GPU per VA-API, kad išvengtumėte neįstrigimų su neįmanomais nustatymais. Čia ateina į žaidimą vainfo, kuriame pateikiami palaikomi profiliai konkrečiam DRI įrenginiui ir VA-API tvarkyklei.
Patikimiausias būdas paleisti „vainfo“ yra aiškiai nurodyti tvarkyklės pavadinimą ir norimą atvaizdavimo įrenginį, pavyzdžiui: LIBVA_DRIVER_NAME=iHD vainfo --display drm --device /dev/dri/renderD128Tai padeda išvengti painiavos sistemose su keliais GPU arba keliais įdiegtais tvarkyklėmis.
Įprasta „vainfo“ išvestis prasideda nuo VA-API versijos ir tvarkyklės nurodymo, o tada rodo ilgą „profilio ir įėjimo taškų“ sąrašą. Kiekviena linija paprastai turi kodeko profilį (MPEG2, H264Main, H264High, HEVCMain, VP8, VP9, AV1…) ir įvesties / išvesties režimą.
Mus domina vaizdo įrašų atkūrimas, nes tokie įrašai rodomi VAEntrypointVLD norimam kodekui, nes tai reiškia, kad GPU gali jį dekoduoti aparatine įranga. Pavyzdžiui, žr. VAProfileH264High : VAEntrypointVLD reiškia H.264 dekodavimo palaikymą; žr. VAProfileVP9Profile0 : VAEntrypointVLD Tai apima aparatinės įrangos VP9 palaikymą ir pan.
Senesnėse GPU paprastai matysite patogų H.264 palaikymą, bet nėra VP8, VP9 arba AV1, todėl turite naudoti naršyklės plėtinius, kad priverstumėte svetaines teikti H.264, o ne naujesnius kodekus. Atminkite, kad jei vaizdo įrašas yra tik VP9/AV1, nėra jokios magijos: jį dekoduos programinė įranga.
Jei „vainfo“ grąžina tokias klaidas kaip „va_openDriver() nepavyko“ arba negali inicijuoti prašomos tvarkyklės, tikėtina, kad jūsų GPU nesuderinamas su ta konkrečia serverio sistema. Tokiu atveju paprastai pakanka perjungti iš iHD į i965 senesnėse „Intel“ sistemose arba patikrinti, ar atitinkamas „Mesa“ paketas yra teisingai įdiegtas AMD/Nouveau sistemose.
Konfigūruokite aplinkos kintamuosius, kad pataisytumėte VA-API tvarkyklę ir DRI įrenginį
Daugelyje vadovėlių daroma prielaida, kad pirmasis DRI įrenginys (renderD128) visada yra iGPU ir kad sistema be jokių tolesnių veiksmų pasirenka tinkamą tvarkyklę, tačiau praktiškai, ypač nešiojamuosiuose kompiuteriuose su keliais GPU, taip gali būti ne visada. Todėl prieš paleidžiant naršyklę svarbu nustatyti kai kuriuos aplinkos kintamuosius.
Trys dažniausiai naudojami kintamieji, skirti valdyti VA-API ir „Firefox“ grafinę sąsają „Linux“ sistemoje, yra šie:
- MOZ_WAYLAND_DRM_DEVICE: kelias į DRI įrenginį, kurį turėtumėte naudoti (pavyzdžiui,
/dev/dri/renderD128o/dev/dri/renderD129). - LIBVA_VAIRUOTOJO_VARDAS: trumpasis įkeliamos VA-API tvarkyklės pavadinimas (
i965,iHD,nouveau,r600,radeonsi, Ir tt). - MOZ_X11_EGL / MOZ_ENABLE_WAYLANDsveikųjų skaičių indikatoriai (0/1), leidžiantys naudoti EGL ir konkretų maršrutą, priklausomai nuo to, ar esate Xorg, ar Wayland.
Pavyzdžiui, norėdami paleisti „Firefox“ X11 sesijoje naudodami „Intel HD“ su iHD tvarkykle, galite naudoti kažką panašaus į: MOZ_WAYLAND_DRM_DEVICE=/dev/dri/renderD128 LIBVA_DRIVER_NAME=iHD MOZ_X11_EGL=1 firefoxVeilande variantas būtų panašus, bet su MOZ_ENABLE_WAYLAND=1 vietoj MOZ_X11_EGL.
Kad man nereikėtų kiekvieną kartą to rašyti bagažinėdaug vartotojų prideda LIBVA_DRIVER_NAME=iHD (ar kas tai bebūtų) į visuotinį failą /etc/environmentkad visa sistema pagal numatytuosius nustatymus turėtų tą VA-API tvarkyklę. Net ir tokiu atveju, paleidimo priemonėje palikite MOZ_WAYLAND_DRM_DEVICE ir MOZ_X11_EGL/MOZ_ENABLE_WAYLAND arba scenarijus „Firefox“ vis dar rekomenduojama naudoti hibridiniuose nešiojamuosiuose kompiuteriuose.
Staliniuose kompiuteriuose, tokiuose kaip KDE Plasma, galite redaguoti „Firefox“ paleidimo priemonę ir pridėti „env“, o po to – kintamuosius prie vykdymo komandos, kad ne visada priklausytumėte nuo terminalo. Kažkas panašaus Exec=env MOZ_WAYLAND_DRM_DEVICE=/dev/dri/renderD128 LIBVA_DRIVER_NAME=iHD MOZ_X11_EGL=1 firefox %u Paprastai tai veikia gerai.
Įjungti aparatinės įrangos spartinimą „Firefox“ naršyklėje (VA-API + WebRender)
„Mozilla“ įdiegė oficialią VA-API palaikymą „Firefox“ naršyklėje, skirtoje „Linux“, pradedant „Wayland“, o vėliau išplėtus ją iki „X11“, tačiau ilgą laiką jis buvo išjungtas pagal numatytuosius nustatymus arba įdiegtas tik iš dalies. Štai kodėl daugelyje vadovėlių rekomenduojama pakoreguoti keletą vidinių nuostatų, kad būtų galima kuo geriau išnaudoti.
Pirmiausia reikia patekti į garsųjį išplėstinių nustatymų puslapį: įveskite about:config Adreso juostoje priimkite įspėjimą ir naudokite paieškos juostą viršuje. Iš ten yra kelios atitinkamos koregavimo grupės.
Norėdami įjungti modernų GPU pagrindu veikiantį kompozitorių, turėtumėte arba aktyvuoti „WebRender“ variklį, arba priverstinai naudoti „OpenGL“: Busca gfx.webrender.all ir padėkite jį tiesaIr jei norite, galite priversti layers.acceleration.force-enabled a tiesa siekiant užtikrinti, kad „Firefox“ bandytų naudoti GPU.
Antra, turite įsitikinti, kad „Firefox“ naudoja „FFmpeg“ su VA-API, o ne savo vidinius dekoderius, kur tinka. Norėdami tai padaryti, suraskite šiuos raktus ir pakoreguokite jų reikšmes:
- media.ffmpeg.vaapi.enabled → tiesa (leisti naudoti VA-API per FFmpeg).
- media.ffvpx.enabled → klaidingas (Išjunkite vidinį FFVPX dekoderį, kad priverstumėte naudoti FFmpeg).
- media.av1.enabled → klaidingas Jei jūsų GPU aparatinė įranga nepalaiko AV1, svetainė pirmenybę teiks kitiems, „draugiškesniems“ kodekams.
- media.rdd-vpx.enabled → Šiuolaikiniuose GPU su aparatinės įrangos VP9 palaikymu galite apsilankyti adresu tiesa; senesnėse grafikose geriau palikti taip, kaip yra klaidingas.
Kompiuteriuose su keliais GPU ir atvirojo kodo tvarkyklėmis (pvz., „Intel“ + AMD) taip pat galite žaisti su kintamaisiais MOZ_WAYLAND_DRM_DEVICE ir LIBVA_DRIVER_NAME, kad nuspręstumėte, ar vaizdo įrašas dekoduojamas iGPU, ar dGPU. Pavyzdžiui, rodydamas į /dev/dri/renderD129 su LIBVA_DRIVER_NAME=r600 arba radeonsi, kad galėtumėte naudoti „Radeon“ kaip vaizdo greitintuvą.
Sistemose, kuriose net ir pakoregavus šiuos parametrus, VP9 ir AV1 išlieka pernelyg daug išteklių reikalaujantys, praktiškas sprendimas yra priverstinai naudoti H.264 su tokiais plėtiniais kaip h264ifiksuoti o Patobulintas h264ify. Šie plėtiniai blokuoja VP8/VP9/AV1 tokiose svetainėse kaip „YouTube“ ir specialiai prašo AVC1 (H.264) srautų, kuriuos beveik visi GPU su VA-API dekoduoja be vargo.
Atlikus pakeitimus, visiškai uždarykite „Firefox“, paleiskite jį su atitinkamais aplinkos kintamaisiais ir pabandykite leisti „YouTube“ vaizdo įrašą 1080p60 raiška, stebėdami procesoriaus ir vaizdo plokštės apkrovą. Ypač pastebėsite patobulinimą kompiuteriuose, kurie yra senesni nei dešimtmetis, nes jų procesorius jau ir taip sunkiai apdoroja didelės raiškos vaizdo įrašus programine įranga.
Patikrinkite, ar „Firefox“ naudoja GPU vaizdo įrašams dekoduoti
Nepakanka, kad naršyklė „atrodytų“ veikianti sklandžiau: būtina objektyviai patikrinti, ar naudojama VA-API ir ar kadrai dekoduojami GPU. „Firefox“ sistemoje „Linux“ yra keli būdai tai padaryti.
Pirmasis – tiesiog peržiūrėti terminalo, iš kurio paleidote „Firefox“ su sukonfigūruotais aplinkos kintamaisiais, išvestį. Jei viskas klostysis gerai, turėtumėte matyti pranešimus iš libva info nurodydamas tai va_openDriver() returns 0 ir nuorodas į įkeltą tvarkyklę (pvz., i965 arba iHD) be vėlesnių klaidų.
Jei naudojate „Intel“ GPU, galite pasinaudoti intel_gpu_top (dalis intel-gpu-tools), kad peržiūrėtumėte konkrečius veiklos skyrius, pvz., „Vaizdo įrašas“, kurie nurodo dekodavimo modulio naudojimo procentą. Be VA-API stulpelis bus lygus nuliui, net jei vaizdo įrašas trūkčioja; kai VA-API aktyvus, vaizdo įrašo atkūrimo metu turėtų būti rodomas pastebimas procentas.
„Radeon“ vaizdo plokštėse lygiavertis įrankis yra radeontop, kuriame rodomos GPU ir VRAM naudojimo juostos. Nors ne visada yra atskiras, aiškus vaizdo dekodavimo skyrius, lengva pastebėti, kaip aktyvumas padidėja, kai veikia VA-API ir tvarkyklė (pvz., r600 arba radeonsi) yra teisingai nukreipta į Radeon DRI įrenginį.
Aplinkose su keliais GPU taip pat gali tekti pridėti parinkčių, pvz. --bus „RadeonTop“ programoje stebėti tik atitinkamą kortelę. Bet kokiu atveju, modelis yra tas pats: jei procesoriaus apkrova sumažėja ir GPU turi daugiau darbo, kai leidžiame vaizdo įrašą, einame teisingu keliu.
Galiausiai, pakartojus tą patį testą su įjungtais ir išjungtais „h264ify“ plėtiniais, galima patikrinti tikrąjį VP9/AV1 pakeitimo į H.264 poveikį išteklių sunaudojimui. Matavimai, atlikti sistemose su i5-2450M ir i7-7700HQ, rodo procesoriaus apkrovos sumažėjimą, kuris kukliuose procesoriuose gali sumažėti iki pusės, kai įsijungia VA-API.
Aparatinės įrangos spartinimas „Chromium“, „Chrome“ ir dariniuose (VA-API + vėliavėlės)
„Chromium 88“ žymėjo lūžio tašką, nes „Linux“ sistemoje buvo pristatyta „rimta“ VA-API palaikymo versija, nors ir su niuansais: stipri priklausomybė nuo „Xorg“, poreikis naudoti tam tikras vėliavėles ir geresnis „Intel“ bei „NVIDIA“ palaikymas nei „Radeon“. Nepaisant to, ta parama buvo perduota visai šeimai: "Google Chrome", Edge, Brave, Vivaldi, Opera ir kt.
Pirmas žingsnis bet kurioje „Chromium“ pagrindu veikiančioje naršyklėje yra patikrinti vidinių žymų puslapį, pasiekiamą naudojant chrome://flags „Chrome“ ir „Chromium“ naršyklėse brave://flags Drąsiai edge://flags ties Edge, vivaldi://flags Vivaldi arba opera://flags operoje. Patekę į vidų, suraskite ir aktyvuokite bent:
- Nepaisyti programinės įrangos pateikimo sąrašo → Įjungta (priverčia ignoruoti GPU juodąjį sąrašą ir priverstinai naudoti pagreitintas funkcijas).
- Aparatinės įrangos pagreitintas vaizdo dekodavimas → Įjungta (įjungia aparatinės įrangos vaizdo dekodavimą).
Įjungus šias parinktis, naršyklė paprašys paleisti iš naujo, kad pakeitimai įsigaliotų; padarykite tai ir apsilankykite chrome://gpu (arba jūsų naršyklės variantą), kad patikrintumėte „Grafikos funkcijų būsenos“ ir „Vaizdo įrašo spartinimo informacijos“ būseną. Idealiu atveju viskas, kas svarbu, turėtų būti rodoma kaip „Aparatinės įrangos pagreitinta“.
Kitas svarbus „Chromium“ ir jo išvestinių dalių aspektas yra tai, kaip programa paleidžiama iš eilutės komandos. Xorg sesijose paprastai rekomenduojama pridėti vėliavėlę --use-gl=desktop, o „Wayland“ sesijose, kuriose naršyklė veikia „XWayland“, jis dažnai naudojamas --use-gl=egl kad išvengtumėte problemų.
Be to, „Chromium“ sistemoje yra su VA API susijusių žymų rinkinys, kurį reikėtų pridėti prie vykdymo komandos arba į žymų konfigūracijos failą:
--enable-accelerated-video-decode--enable-accelerated-video-encode--enable-features=VaapiVideoDecoder--disable-features=UseChromeOSDirectVideoDecoder
Pavyzdžiui, Xorg kalboje su "Google" Stabilioje „Chrome“ versijoje galite paleisti kažką panašaus: google-chrome-stable --use-gl=desktop --enable-accelerated-video-decode --enable-accelerated-video-encode --enable-features=VaapiVideoDecoder --disable-features=UseChromeOSDirectVideoDecoderTas pats modelis galioja ir „Brave“ (brave-browser), Vivaldi (vivaldi), Opera (opera) arba kraštas (microsoft-edge).
Tokiuose platinimuose kaip „CachyOS“, „Arch“ ir panašiose sistemose daugelis naršyklių leidžia šias vėliavėles centralizuotai patalpinti tokiuose failuose kaip ~/.config/chromium-flags.conf, ~/.config/brave-flags.conf ar panašiai. Kita įprasta alternatyva yra redaguoti failą. .desktop iš naršyklės, nukopijuokite jį iš /usr/share/applications a ~/.local/share/applications ir pridėkite vėliavėles prie linijos Exec=.
Dar kartą, jei norite, kad viskas būtų nuolatinė ir nepriklauso nuo terminalo, geriausia tai redaguoti. .desktop arba paleidimo priemonę darbalaukio aplinkos meniu, kad ji visada pridėtų teisingas vėliavėles. Tokiu būdu, atidarant naršyklę iš meniu arba doko, visada atsižvelgiama į VA-API parinktis.
Aparatinės įrangos dekodavimo tikrinimas „Chromium“ naršyklėse
„Chromium“ šeimoje yra du pagrindiniai būdai, kaip patikrinti, ar vaizdo įrašų dekodavimas vyksta aparatine įranga. Vienas yra bendresnis, o kitas naudojasi kūrimo įrankiais.
Greitas būdas – apsilankyti chrome://gpu (arba atitinkamą naršyklės parinktį) ir patikrinkite, ar skiltyje „Vaizdo įrašų spartinimo informacija“ yra įrašų su būsena „Aparatinė įranga pagreitinta“. Tai suteikia bendrą vaizdą apie galimybes, bet negarantuoja, kad konkretus vaizdo įrašas iš tikrųjų naudos GPU.
Norėdami patikrinti realaus pasaulio pavyzdį, atidarykite vaizdo įrašą (pavyzdžiui, „YouTube“), tada paspauskite F12 arba Ctrl+Shift+I ir įveskite kūrėjo įrankius ir ieškokite skirtuko Media (Jei nerodoma, rasite ją papildomų skirtukų meniu). Dalyje „Media“ pasirinkite grotuvą vaizdo įrašui, kurį leidžiate.
Išsamioje grotuvo informacijoje matysite lauką, kuriame nurodomas naudojamo vaizdo dekoderio tipas ir ar „Aparatinės įrangos dekoderis“ nustatytas kaip „true“. Idealiu atveju turėtumėte matyti su VA-API/GL susietą dekoderį su įjungtu aparatinės įrangos dekoderiu; jei vietoj to matote tokius pavadinimus kaip VpxVideoDecoder, FFmpegVideoDecoder o Dav1dVideoDecoder Neatkreipiant dėmesio į aparatinę įrangą, tikėtina, kad naudojama programinė įranga.
Kai kuriose senesnėse versijose buvo rekomenduojama naudoti chrome://media-internals tam pačiam patikrinimui ir peržiūros laukams, pvz. kVideoDecoderName, kur reikšmė yra tipo MojoVideoDecoder Tai nurodė aparatinės įrangos spartinimo naudojimą, o ne grynai programinės įrangos dekoderius. Naudojant šiuolaikinius įrankius, „DevTools“ skirtukas „Media“ iš esmės pakeitė tą puslapį.
Galiausiai, šį patikrinimą galite derinti su GPU stebėjimo įrankiais, panašiais į tuos, kurie naudojami „Firefox“ (intel_gpu_top, radeontop, amdgpu_top, nvtop ir kt.), užtikrindami, kad naršyklei leidžiant vaizdo įrašą, GPU vaizdo varikliai rodytų tikrą aktyvumą.
Kodavimas ir kodekai: H.264, VP9, AV1 ir plėtiniai, tokie kaip h264ify
Viena dažnai nepastebima detalė yra ta, kad net jei GPU palaiko VA-API, jei vaizdo kodekas nėra įdiegtas aparatinėje įrangoje, neišvengiamai bus naudojamas programinės įrangos dekodavimas. Čia praverčia plėtiniai ir papildomos konfigūracijos.
H.264/AVC1 yra „pakaitos simbolio“ kodekas, kurį praktiškai visi kelių metų senumo GPU gerai tvarko per VA-API, o VP8, VP9 ir AV1 aparatinės įrangos spartinimą palaiko tik palyginti modernios kartos. Tai aiškiai matyti išeinant iš vainfokur senesni GPU palaiko tik H.264 ir mažai ką kita.
Tačiau tokios platformos kaip „YouTube“ teikia pirmenybę VP9 arba net AV1 šiuolaikinėse naršyklėse, o H.264 palieka kaip antrinę parinktį arba tik tam tikroms skiriamosioms geboms. Todėl, net jei turite VA-API konfigūravimą, jei „YouTube“ nuspręs pateikti jums VP9, o jūsų GPU jo nepalaiko, nukentės procesorius.
Štai kur plėtiniai, tokie kaip h264ifiksuoti ir jo atšakos („Enhanced h264ify“ ir kt.) yra nepaprastai naudingos: jos blokuoja VP8/VP9/AV1 ir priverčia svetainę naudoti galimą H.264 profilį, kai toks yra. Tačiau jei nėra konkretaus vaizdo įrašo H.264 versijos, jie negalės jos sukurti.
Verta paminėti, kad „YouTube“, kai priversta naudoti H.264, dažnai apriboja maksimalią raišką iki 1080p esant 60 FPS, o su VP9/AV1 gali pasiūlyti 1440p, 4K ir didelį kadrų dažnį. Todėl įjungus „h264ify“ kartais reikia paaukoti maksimalią įmanomą skiriamąją gebą mainais už sklandesnį atkūrimą, kuris mažiau apkrauna procesorių.
Kalbant apie naujos kartos kodekus, tokius kaip AV1, tik labai modernūs GPU turi tikrą aparatinės įrangos dekodavimo palaikymą, todėl daugumoje dabartinių kompiuterių vis tiek geriausia jį išjungti naršyklėje, jei pastebite, kad žiūrint bet kokį vaizdo įrašą ventiliatoriai tampa panašūs į turbinas.
Realus poveikis našumui: kada apsimoka kovoti su VA-API
Empiriniai bandymai, atlikti su nešiojamaisiais kompiuteriais su 2 branduolių, 4 gijų procesoriais (pvz., senesniais „i5-2450M“), rodo, kad įjungus VA-API ir delegavus H.264 dekodavimą GPU, vidutinis procesoriaus naudojimas atkuriant 1080p60 vaizdo įrašus „Firefox“ naršyklėje gali praktiškai perpus sumažėti. Tai reiškia, kad įranga yra vėsesnė ir tylesnė, o patirtis – daug stabilesnė.
Naujesniuose kompiuteriuose su 4C/8T ar galingesniais procesoriais (pvz., i7-7700HQ) procesoriaus našumo skirtumas nėra toks ryškus, kartais siekia 3–6 % mažesnis. Nepaisant to, apkrova paprastai pasiskirsto geriau ir sumažėja dideli naudojimo pikai, galintys sukelti nedidelius trūkčiojimus.
Įdomu tai, kad palyginus naršyklės atkūrimą su VA-API su grotuvu, pvz., VLC, kuris taip pat konfigūruotas su VA-API, pamatysite, kad naršyklės procesoriaus sunaudojimas paprastai yra žymiai didesnis. Tai rodo, kad naršyklių VA-API integravimo ir duomenų perdavimo tarp procesoriaus ir grafikos plokštės (CPU) valdymo „Linux“ sistemoje dar yra ką tobulinti.
Bet kokiu atveju, kuklių ar senesnių nešiojamųjų kompiuterių atveju, šiek tiek laiko skiriant aparatinės įrangos spartinimui tiksliai sureguliuoti, galima nulemti, ar reikės atsisakyti 1080p vaizdo įrašų, ar bus galima vartoti didelės raiškos turinį nepakenkiant sistemai. Galingose sistemose patobulinimas egzistuoja, tačiau jis yra subtilesnis ir daugeliu atvejų neverta per daug komplikuoti, jei jau sekasi „pakankamai gerai“.
Akivaizdu, kad „Linux“ + modernių naršyklių + VA-API derinys vis dar šiek tiek atsilieka nuo „Windows“ patirties, kur vaizdo perdavimo GPU sistemai būdai yra labiau ištobulinti ir standartizuoti. Net ir tokiu atveju, tinkamai atlikus veiksmus, pingvino darbalaukyje galima pasiekti labai pagarbos verto elgesio.
Jei jau nuėjote iki šiol, jau žinote, kad norint įjungti aparatinės įrangos vaizdo spartinimą „Linux“ sistemoje, reikia ne tik pažymėti langelį naršyklėje, bet ir tinkamai suderinti VA-API tvarkykles, aplinkos kintamuosius, vidines vėliavėles ir kodekų pasirinkimus, kad „Firefox“, „Chrome“, „Brave“ ir kiti sklandžiai veiktų su jūsų GPU, o ne be reikalo apkrautų procesorių.
Aistringas rašytojas apie baitų pasaulį ir technologijas apskritai. Man patinka dalytis savo žiniomis rašydamas, būtent tai ir darysiu šiame tinklaraštyje, parodysiu jums įdomiausius dalykus apie programėles, programinę įrangą, techninę įrangą, technologijų tendencijas ir kt. Mano tikslas – padėti jums paprastai ir smagiai naršyti skaitmeniniame pasaulyje.