Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
wniming
V2EX  ›  Linux

Asahi Linux 支持硬件解码了

  •  
  •   wniming · 3h 26m ago · 363 views

    我期待这个功能很久了,现在终于能用了,忍不住发帖分享一下。

    硬件解码默认还没启用,需要自己稍微折腾一下:

    1 ,需要设置 LIBVA_DRIVER_NAME=v4l2_request 环境变量,不设置的话就不能自动探测到合适的 VA-API driver 。

    2 ,mpv 播放器需要加上 gpu-api=opengl 这个配置,不指定这个的话颜色是绿的,而且屏幕还会闪烁。

    3 ,m2 设备上的 hevc 硬件解码我实测还不可用,需要自己编译 libva-v4l2_request 的源码,禁用 hevc ,不禁用的话用 mpv 硬解播放 hevc 视频会报错。

    4 ,chrome 浏览器也需要自己编译 libva-v4l2_request ,用 https://github.com/omacom/libva-v4l2_request.git avd-fixes 分支最新的代码,否则画面也是一片绿。

    另外我自行编译了 moonlight-qt ,用 v6.2.0 的代码,实测 h264 硬解效果非常好。

    libva-v4l2_request 禁用 hevc 的方法如下:

    ⬢ d@macmini-m2_fedora-toolbox-44:~/src/libva-v4l2_request$ git diff
    diff --git a/src/codec_hevc.c b/src/codec_hevc.c
    index dd9b15a..8e27807 100644
    --- a/src/codec_hevc.c
    +++ b/src/codec_hevc.c
    @@ -1393,7 +1393,7 @@ const struct v4l2r_codec v4l2r_codec_hevc = {
            .name = "hevc",
            .pixelformat = V4L2_PIX_FMT_HEVC_SLICE,
            .profiles = hevc_profiles,
    -       .nb_profiles = 2,
    +       .nb_profiles = 0,
            .priv_size = sizeof(struct hevc_context),
            .init = hevc_init,
            .uninit = hevc_uninit,
    ⬢ d@macmini-m2_fedora-toolbox-44:~/src/libva-v4l2_request$ 
    
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3114 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:43 · PVG 18:43 · LAX 03:43 · JFK 06:43
    ♥ Do have faith in what you're doing.