Hardwarový video decoding na Firefoxe

mmcc

Hardwarový video decoding na Firefoxe
« kdy: 19. 02. 2026, 15:09:47 »
Funguje niekomu HW video decoding na Firefoxe? Prehravanie videi vytazuje procesor. V Chrome funguju videa bez problemov. Tak isto aj WebGL.  Hladal som, skusal som kadeco mozne aktualizacia ovladacov, zmena parametrov v about:config, spustanie Firefoxu s env parametrami, zmena wayland na X11. Jeden vecer som zabil aj s chat GPT. Ale vsetko neuspesne. Koncom minuleho roku som menil 12rocne PC hlavne kvoli pomalemu FF. Ale velky vykonnostny skok to nebol, lebo ako som zistil, vsetko vo FF bezi na CPU.

Mam Kubuntu latest, Wayland
vainfo: Driver version: VA-API NVDEC driver [direct backend]
graficky driver NVIDIA-SMI 580.126.09 (RTX 5060Ti)

V about:config mam pri viacerich parametroch ohladom GPU, GFX taketo opakujuce sa hodnoty
FEATURE_FAILURE_GLXTEST_FAILED
Blocklisted; failure code FEATURE_FAILURE_VIDEO_ENCODING_MISSING
Blocklisted; failure code FEATURE_FAILURE_VIDEO_DECODING_TEST_FAILED
Blocklisted by gfxInfo,    Force disabled by gfxInfo
V terminali vidim [8992] Wayland Proxy [0x7300df39e8a0] Error: StartProxyServer(): bind() error : Permission denied

Mohol by niekto, komu to funguje poradit ako to zapnut? Poslat funkcnu konfiguraciu, verziu NVIDIA driveru
Dakujem


jjrsk

  • *****
  • 899
    • Zobrazit profil
Re:Hardware video decoding na Firefoxe.
« Odpověď #1 kdy: 19. 02. 2026, 15:46:28 »
Nejak si zapomel zminit, jaky videa na tom prehravas ...

Jestli yt, tak si muzes primo zjistit pouzivanej codec (pravym na video, posledni polozka). Pokud je tam av1, tak se nediv a vypni to (pokud to v tom chromym browseru jeste jde).

media.av1.enabled
media.webm.enabled (aneb vp9)

Tyhle dve veci vypni a uvidis. Melo by tam pak byt avc1 aneb h264.

mmcc

Re:Hardwarový video decoding na Firefoxe
« Odpověď #2 kdy: 19. 02. 2026, 20:11:27 »
Nieje to celkom to co som chcel dosiahnut. V about:support, Codec Support Information, svieti na zeleno Supported iba stlpec "Software Decoding", ostatne stlpce, aj Hardware Decoding je vsetko cervene Unsupported.
Vypnutie media.av1.enabled na YT pomohlo, procesor uz nieje vytazeny.
Vypnutie aj media.webm.enabled, videa nesli vobec, dalo chybu nejaky h264 plugin crashed.

Zaujimave, ze aj ked bolo media.av1 true, alebo false. V nerds stats bol stale codec vp9. Neviem este ako sa to bude spravat npr pri video calloch cez google meet, zoom. Snad to pomoze aj tam.

Dakujem za tip na media.av1.enabled

Re:Hardwarový video decoding na Firefoxe
« Odpověď #3 kdy: 20. 02. 2026, 10:01:34 »
Firefox umí decoding H264, H265 (HEVC), VP8, VP9 i AV1.
To stejný umí i ta grafika RTX 5060Ti, která má NVDEC 6. generace
https://developer.nvidia.com/video-encode-decode-support-matrix

Problém bude v SW části, patrně na nVidia straně. HW akcelerace videí ve Firefoxu má fungovat přes VAAPI tak se podívej jestli ho máš zapnutý jak ve Firefoxu (about:config) tak ho podporuje tvůj nvidia driver.
Bylo tady o tom nějaký povídání:
https://www.root.cz/zpravicky/experimentalni-akcelerace-videa-pred-va-api-nad-nvdec-nejen-pro-firefox/
https://github.com/elFarto/nvidia-vaapi-driver


BTW co máš za procesor? Nemá iGPU která ty formáty umí akcelerovat také?
Jde vůbec v Linuxu používat iGPU když je v PC strčená zároveň i NVIDIA karta?
« Poslední změna: 20. 02. 2026, 10:09:00 od hungarec »

mmcc

Re:Hardwarový video decoding na Firefoxe
« Odpověď #4 kdy: 20. 02. 2026, 12:57:05 »
Prisiel som na to, ze som mal firefox snap. Po instalacii firefoxu cez apt uz vsetko funguje, procesor je takmer v idle mode aj pri 4K videu. Procesor mam Ryzen9.

Takto mam about:config pri ktorom mi funguje HW decoding. Ak s tym tiez niekto experimentuje...
user_pref("media.av1.enabled", false);  -- s tymto este experimetujem na YT
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.gpu-process-decoder", true);
user_pref("media.hardware-video-decoding.force-enabled", true);
user_pref("widget.dmabuf.force-enabled", true);
user_pref("widget.wayland-dmabuf-vaapi.enabled", true);

Inac tieto nastavenia sa ukladaju do prefs.js v adresari FF profilu. Nesmu byt duplicitne a ak editovat, tak iba pri zatvorenom FF.

A tiez v env premennych mam toto:
MOZ_DISABLE_RDD_SANDBOX=1
MOZ_ENABLE_WAYLAND=1

Nieco z toho je mozno aj zbytocne.


Re:Hardwarový video decoding na Firefoxe
« Odpověď #5 kdy: 20. 02. 2026, 15:13:00 »
iGPU v AMD Ryzen 9000 series (RDNA2) i v té NVIDIA RTX 5000 series (NVDEC6) umí AV1 dekódovat. Není důvod to mít zakázané.

Re:Hardwarový video decoding na Firefoxe
« Odpověď #6 kdy: 20. 02. 2026, 19:10:49 »
Už jste si na to vše v podstatě přišel.

NVIDIA používá své NVDEC API, ale Firefox i Chrome/Chromium based prohlížeče používají VA-API. Takže musí být v systému nainstalovaný wrapper.
Např. ve Fedoře se ten balíček jmenuje libva-nvidia-driver a samotná knihovna je v /usr/lib64/dri/nvidia_drv_video.so.
Další překážka je, že ve Firefoxu je to nějakou dobu ve výchozím stavu na blacklistu (lze přerazit přes media.hardware-video-decoding.force-enabled).
Třetí překážka je, že Firefox pouští separátní dekódovací proces v sandboxu, co se na to nedostane, dokud se nenastaví proměnná MOZ_DISABLE_RDD_SANDBOX.
To by mělo zabrat ve standardním Firefoxu.

U Flatpak verze (většinou ji používám na distribucích, co mají v systému starou ESR verzi) je tam pak ještě další zádrhel.
Firefox z Flathubu je sestaven proti runtime z branche 24.08, kdežto dostupný runtime s wrapperem (org.freedesktop.Platform.VAAPI.nvidia) je jen v branchi 25.08.
Dá se to obejít tak, že se zkopíruje knihovna wrapperu ze systému, aby ji flatpak našel.

např.
Kód: [Vybrat]
# zkopírovat ten VA-API wrapper do adresáře, kam může Flatpak
mkdir ${HOME}/.var/app/org.mozilla.firefox/data/dri/
cp /usr/lib64/dri/nvidia_drv_video.so ${HOME}/.var/app/org.mozilla.firefox/data/dri/nvidia_drv_video.so

# přenastavit proměnné flatpaku
flatpak override --user --env="LIBVA_DRIVER_NAME=nvidia" --env="LIBVA_DRIVERS_PATH=/home/${HOME}/.var/app/org.mozilla.firefox/data/dri" --env="MOZ_DISABLE_RDD_SANDBOX=1" org.mozilla.firefox

ve Firefoxu pak nastavit v about:config
media.ffmpeg.vaapi.enabled=true
media.hardware-video-decoding.force-enabled=true

Pro rychlou kontrolu, jestli to běží, se stačí podívat do about:support, případně spustit třeba HEVC video
https://lf-tk-sg.ibytedtos.com/obj/tcs-client-sg/resources/video_demo_hevc.html#main-bt709-sample-11
a podívat se na nvidia-smi:
nvidia-smi dmon -s u
Jestli je to aktivní, tak to ukáže nějaké vytížení ve sloupci "dec".