Asahi Linux 支持硬件解码了

wniming 2026-10-26 15:16 1

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


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


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$
最新回复 (0)
    没有回复
* 帖子来源V2EX
返回