我期待这个功能很久了,现在终于能用了,忍不住发帖分享一下。
硬件解码默认还没启用,需要自己稍微折腾一下:
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$