Hardveresen gyorsított videólejátszás bekapcsolása a Firefox böngészőben

kami911 képe

A Firefox hardveres videódekódolása nagymértékben csökkenti a CPU-használatot videónézés közben. Ez energiát takarít meg, csökkenti a hőkibocsájtást és a ventilátorok zaját, miközben a számítógép erőforrásai szabadabbak a videónézés közbeni egyéb feladatokra. Bár a funkció nem tökéletes, érdemes lehet kipróbálni. A Firefox két megoldással tud hardveresen is gyorsított videólejátszást végezni:

  • Az egyik a ffvpx, ami a Firefox beépített dekódere és az ffmpeg projekt alapján készül. Képes a VP8 és a VP9 videófolyamok dekódolásra. Használni tudja a VA-API-t, futhat távoli folyamatként, sandbox-ban, de ekkor lehet, hogy még blokkolódik a hardveres lejátszási képesség - a fejlesztők dolgoznak rajta, hogy ne így legyen, talán mostanra már meg is oldódott a probléma.
  • A másik az ffmpeg külső (rendszerszintű) dekódoló. Szélesebb a támogatott videófolyamok támogatása. Használni tudja a VA-API-t, futhat távoli folyamatként, sandbox-ban, de ekkor is működik a hardveres lejátszási képesség. Ugyanakkor külső csomag, a FFmpeg programkönyvtár telepítését igényli.

A hardveresen támogatott videólejátszás bekapcsolásához azonban a hardvernek is támogatnia kell az adott formátumot és a VA-API programkönyvtárat. 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ész biztosítja a mai GPU-k videódekódolási képességeinek teljes körű kiaknázásához.

A Hardveresen gyorsított videólejátszás beállítása

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. A 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. 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:

Hardveresen támogatott videólejátszás bekapcsolása

A hardveres videólejátszás bekapcsolása a Firefox böngészőben

Két irányba indulhat a hardveresen támogatott videó lejátszás esetében:

  • Az ffvpx a Firefox beépített dekódere (az ffmpeg projekt alapján), amely képes VP8 és VP9 dekódolásra. Használhatja a VAAPI-t, ha a media.ffmpeg.vaapi.enabled be van állítva. Alapértelmezés szerint RDD folyamatban fut, ahol a VAAPI-t a sandbox blokkolja. Az RDD letiltható a 'media.rdd-ffvpx.enabled' pref értékkel.
  • Az ffmpeg külső (rendszerszintű) dekódoló, és a H.264, VP8 és VP9 dekódolására szolgál (az AV1-et a DAV1DDecoder dekódolja). Használhatja a VAAPI-t, ha a media.ffmpeg.vaapi.enabled be van állítva. Alapértelmezés szerint olyan tartalmi folyamatban fut, ahol a VAAPI-t a sandbox engedélyezi. Az RDD engedélyezhető a media.rdd-ffmpeg.enabled pref értékkel, amely alapértelmezés szerint ki van kapcsolva.

A dekóder felvételi sorrendje először ffvpx, majd ffmpeg, így amikor megnyitja a VP8 és VP9 (amelyet az ffvpx támogat), az ffvpx van kiválasztva. Amikor a media.ffmpeg.vaapi.enabled be van állítva, megpróbálja a böngésző megnyitni a VAAPI-t, de nem sikerül, így az szoftver dekódert használjuk.

Rövid távú megoldás az ffvpx letiltása és csak az ffmpeg használata, a „media.ffvpx.enabled” beállítása false-ra és a böngésző újraindítása. Hosszú távú megoldás az ffvpx és az ffmpeg áthelyezése GPU folyamatba, ahol a GPU hozzáférés engedélyezve van.

Távoli, sandbox-ba zárt folyamatok

Ami az RDD-t illeti, ez egy erősen korlátozott folyamat, sandbox-ban futó folyamat, amelyet harmadik féltől származó programkönyvtárakhoz használnak, és általában nem szabad letiltani. Ha a 'media.rdd-process.enabled' értéket false-ra állítja, akkor az összes videódekóder korlátozás nélkül fut a tartalomfolyamatban (ami veszélyforrás).

Alapvetően talán egyszerűbb, ha a külső modulként elérhető FFmpeg-et használja a Firefox a videótartalmak hardveresen gyorsított lejátszásához. Az FFmpeg programkönyvtárat a „libavcodec58” csomag telepítésével telepítheti, a következő módon:

sudo apt install libavcodec58

Amennyiben van működő hardveresen gyorsított videólejátszás, és az FFmeg is telepítve van a Firefox böngészőt rá kell venni, hogy használja ezt a programkönyvtárat.

A Firefox böngészőben számos olyan funkció is beállítható, amelyeknek nincsen a felhasználói felületen beállítási lehetősége. Ezek a beállításokkal további testreszabási beállításokat végezhető el. A felület eléréséhez írja be a címsorba a következőt:

about:config

A megjelenő ablakban kattintson a „Kockázat elfogadás és továbblépés” gombra:

Az megjelenő felső keresőmezőben kereshető a beállítás neve részben vagy egészben. A keresés után a szűrt listából:

  • Logikai érték esetén: a logikai értékre duplán kattintva, vagy a sorvégi gombra kattintva változható meg;

FFmpeg használatának beállítása

FFmpeg használatának engedélyezése:

media.ffmpeg.enabled

Az alapértelmezett false állítsa át true értékre.

FFmpeg hardveres támogatott videólejátszásának engedélyezése a VA-API-n keresztül:

Beállítás neve:

media.ffmpeg.vaapi.enabled

Az alapértelmezett false állítsa át true értékre.

FFmpeg hardveres támogatott videólejátszásának engedélyezése a VA-API-n keresztül a DRM tartalmakhoz:

media.ffmpeg.vaapi-drm-display.enabled

Az alapértelmezett false állítsa át true értékre.

Majd tiltsa le a belső videólejátszást:

Beállítás neve:

media.ffvpx.enabled

Az alapértelmezett true állítsa át false értékre.

media.rdd-ffvpx.enabled

Az alapértelmezett true állítsa át false értékre.

media.rdd-vpx.enabled

Az alapértelmezett true állítsa át false értékre.

Ha így működik a hardveresen gyorsított videólejátszás, akkor tegye lehetővé, hogy a Firefox sandbox-ban (nagyobb biztonság) futtassa az FFmpeg folyamatait:

media.rdd-ffmpeg.enabled

Az alapértelmezett false állítsa át true értékre. Ez lesz az alapértelmezett a Firefox 97-es verziójától kezdve.

Belső lejátszó használatának beállítása

Megpróbálhatja a FFmpeg telepítése nélkül bekapcsolni a hardveresen gyorsított videólejátszást. Ez a már említett Firefox böngészőbe integrált ffvpx lejátszót használja.

FFmpeg használatának tiltása:

media.ffmpeg.enabled

Az alapértelmezett false értéket állítsa vissza.

A böngészőbe épített ffvpx használata (ezt is érdemes kipróbálni az FFmpeg letiltása esetén, vagy ha az nem működne).

Beállítás neve:

media.ffvpx.enabled

Az alapértelmezett true értéket állítsa vissza.

Ha így működik a hardveresen gyorsított videólejátszás, akkor tegye lehetővé, hogy a Firefox sandbox-ban (nagyobb biztonság) futtassa az ffvpx és vpx folyamatait:

media.rdd-ffvpx.enabled

Az alapértelmezett true értéket állítsa vissza.

media.rdd-vpx.enabled

Az alapértelmezett true értéket állítsa vissza.

További érdekességek

Az AV1 videóformátum támogatása:

media.av1.enabled

Wayland használata esetén

Amennyiben Wayland protokollal kommunikáló grafikus szervert használ, akkor hozza létre a következő kulcsot:

widget.wayland-dmabuf-vaapi.enabled

és állítsa true értékre.

Ehhez engedélyezni kell a WebRender használatát is, amely napjainkban már alapértelmezetten megtörténi, de ha mégsem, akkor:

gfx.webrender.enabled

beállítás true értékre történő állításával teheti meg.

A Wayland alkalmazása mellett szükség lehet a következő indítási paraméterre is:

MOZ_ENABLE_WAYLAND=1

Hogyan győződjön meg a sikeres beállításról?

Ha a Firefox futása alapján nem eldönthető, alacsonyabb CPU használat, jobb teljesítményű lejátszás, akkor a Firefox böngészőt lehet indítani részletesebb videó hibakeresési paraméterrel is, például:

MOZ_LOG="PlatformDecoderModule:5" firefox

vagy Wayland esetében:

MOZ_LOG="PlatformDecoderModule:5" MOZ_ENABLE_WAYLAND=1 firefox

És ha itt FFmpeg esetében feltűnik a naplóbejegyzések között, az alábbi:

Initialising VA-API FFmpeg decoder

Akkor sikerült a hardveresen támogatott videólejátszást működésre bírni a Firefox böngészőben.

Youtube és a formátumok

Amint az a fentiekből sejthető, a hardveresen támogatott videólejátszás bekapcsolása nem ördöngösség. A nyereség nem más, mint energiatakarékosság, csendesebben és hűvösebben üzemelő számítógép, hosszabb üzemidővel bíró laptop. Ugyanakkor figyelembe kell venni, hogy az adott GPU milyen képességekkel rendelkezik, milyen videocodekeket ismer és a meglévő eszközök, hogyan tudják ezt kihasználni. Jó példa erre a Youtube, amely általában a legújabb megoldásokkal kényezteti el a videókat néző publikumot. Ám nem veszi figyelembe, hogy az adott számítógép milyen formátumot tud optimálisan lejátszani. Így kénytelen a felhasználó segíteni ebben, például a enhanced-h264ify nevű Firefox bővítménnyel, amellyel a támogatott videocodekek adhatjuk meg a Youtube számára a bővítmény segítségével.

További információk