记录一下自己开启 Firefox 视频硬件解码的过程。

对于 Intel GPU Firefox 115 以及之后版本,Firefox 会自动在符合条件时开启硬件加速。 但对于 AMD GPU Firefox 并不会自动开启硬件加速。 因此用户需要手动配置。

第零步:安装相应的驱动及软件包,并验证 VA-API 可用

因为本文主要的话题是 Firefox ,因此这部分内容就不赘述了。

具体可以参考 Arch Wiki Hardware video acceleration 页面。

使用 vainfo 命令,看到如下输出,确认 VA-API 可用就可以进行下一步了。

$ vainfo
Trying display: wayland
vainfo: VA-API version: 1.19 (libva 2.19.0)
vainfo: Driver version: Mesa Gallium driver 23.1.6 for AMD Radeon Graphics (renoir, LLVM 15.0.7, DRM 3.52, 6.4.11-zen1-1-zen)
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
    VAProfileHEVCMain10             :       VAEntrypointEncSlice
    VAProfileJPEGBaseline           :       VAEntrypointVLD
    VAProfileVP9Profile0            :       VAEntrypointVLD
    VAProfileVP9Profile2            :       VAEntrypointVLD
    VAProfileNone                   :       VAEntrypointVideoProc

第一步:修改 about:config 配置

打开 about:config 进行如下配置,强制开启 WebRender。

gfx.webrender.all=true
gfx.webrender.compositor=true
gfx.webrender.compositor.force-enabled=true

media.ffmpeg.vaapi.enabled=true
media.hardware-video-decoding.force-enabled=true

第二步:重启 Firefox ,确认 Hardware video acceleration 是否生效

重启 Firefox,打开 about:support 页面。

确认 WEBRENDER、HARDWARE_VIDEO_DECODING 已经开启。

/images/2023/linux-firefox-hw-video-acceleration/webrender.png

WEBRENDER

/images/2023/linux-firefox-hw-video-acceleration/hw_video_decoding.png

HARDWARE_VIDEO_DECODING

这里着重说明一点,你有可能在 env 一栏中看到 Blocklisted; failure code FEATURE_FAILURE_DISABLE_RELEASE_OR_BETABlocklisted; failure code FEATURE_HARDWARE_VIDEO_DECODING_DISABLE 这样的内容。

但只要看到 user 一栏写着 force_enabledForce enabled by pref ,就说明已经开启成功了。 系统默认的配置已经被用户设置所覆盖。

Arch Linux Wiki 存在一定的误导,并不是看到 FEATURE_HARDWARE_VIDEO_DECODING_DISABLE 就必须使用 firefox-vaapi ,费时费力修改源码重新编译。 只需要到 about:config 修改上步提到的那几个配置项就OK了。

firefox-vaapi 只是让浏览器不再显示错误信息而已,完全没有必要。

再向下拉到 Media 一节,看到如下的表格便说明 Hardware video acceleration 已经成功开启生效。

/images/2023/linux-firefox-hw-video-acceleration/media.png