2025-04-24, 02:15 PM
After some more tinkering and searching online, I found the root cause of the problem.
The reason that the vainfo command (sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD129) was failing was because the iGPU couldn't be accessed by the ESXi Ubuntu VM. I had to add a special parameters in the advanced configuration of the VM to be able to use the iGPU:
I found this suggestion in comment online on this blog (different hardware but some problem): https://williamlam.com/2021/07/passthrou...de-43.html
It was misleading because the iGPU device was visible in Linux but not reporting any problem, until you tried to use it in Jellyfin that is.
After adding this parameter and rebooting the VM, the command now succeeds and I can use the iGPU.
I verified with intel_gpu_top and I can see some activity when it's transcoding, so that's perfect.
Thank you for the Wikipedia link to the codecs supported by my platform, that was also super helpful.
I hope that documenting the solution here will help people looking for an answer to the same problem.
The reason that the vainfo command (sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD129) was failing was because the iGPU couldn't be accessed by the ESXi Ubuntu VM. I had to add a special parameters in the advanced configuration of the VM to be able to use the iGPU:
Code:
hypervisor.cpuid.v0 = FALSE
I found this suggestion in comment online on this blog (different hardware but some problem): https://williamlam.com/2021/07/passthrou...de-43.html
It was misleading because the iGPU device was visible in Linux but not reporting any problem, until you tried to use it in Jellyfin that is.
After adding this parameter and rebooting the VM, the command now succeeds and I can use the iGPU.
Code:
$ sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD129 -init_hw_device opencl@va
ffmpeg version 7.1.1-Jellyfin Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 13 (Ubuntu 13.3.0-6ubuntu2~24.04)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto=auto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libxml2 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libharfbuzz --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
[AVHWDeviceContext @ 0x61650bee1740] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x61650bee1740] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x61650bee1740] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x61650bee1740] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x61650bee1740] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x61650bee1740] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 25.2.0 (114dd54).
[AVHWDeviceContext @ 0x61650bee1740] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x61650bf17100] 0.0: Intel(R) OpenCL Graphics / Intel(R) Iris(R) Pro Graphics 580
[AVHWDeviceContext @ 0x61650bf17100] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x61650bf17100] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x61650bf17100] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
I verified with intel_gpu_top and I can see some activity when it's transcoding, so that's perfect.
Thank you for the Wikipedia link to the codecs supported by my platform, that was also super helpful.
I hope that documenting the solution here will help people looking for an answer to the same problem.