我们运行一个装有 Intel Corporation HD Graphics 630 的托管机箱。我们安装了 Debian Buster i965-va-driver-shaders
。intel-media-va-driver-non-free
我们能够使用来自 Debian Multimedia 存储库的 ffmpeg 对从 Xvfb 抓取的屏幕进行硬件加速视频编码。
ffmpeg -hide_banner -y -loglevel error -vaapi_device /dev/dri/renderD128 -thread_queue_size 512 -video_size 1280x720 -framerate 25 -draw_mouse 0 -f x11grab -i :0.0 -f pulse -i mspmqp2tda.monitor -map 0:v -map 1:a -vf hwupload,scale_vaapi=format=nv12 -c:v h264_vaapi -qp 24 -c:a libfdk_aac rec.mp4
我们缺少的是 Chromium 中的硬件加速视频解码。如果它在 Xvfb 中运行,它似乎无法开箱即用。命令 vainfo 出现错误,输出如下:
root@box:~# DISPLAY=:1 vainfo
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
vaInitialize failed with error code -1 (unknown libva error),exit
有没有办法在无头服务器上启用 VA-API HW 解码功能?
请注意,硬件解码可与我们本地台式电脑上的 Debian Buster(相同软件)上的 Chromium 配合使用。