Jellyfin Forum
Intel HW transcoding not working - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Intel HW transcoding not working (/t-intel-hw-transcoding-not-working)



Intel HW transcoding not working - jvanstensel - 2025-08-13

This mixes proxmox and jellyfin troubleshooting, but right now my issue appears to be with jellyfin, so I'm posting this here.

I cannot for the life of me get hardware transcoding to run on my Intel 6700K (Skylake).  I followed the instructions on the Jellyfin website for an Intel GPU and everything seems to be correct, but my GPU utilization never increases above zero.  I tried both QSV and VAAPI, neither worked.

I'm using a privileged container in proxmox and passing the /dev/dri/card1 and /dev/dri/renderD128 resources through to the privileged LXC container.  It seems like the resource gets passed through to the container.  However, whenever I try and transode a video, it is only using the processor.  I'm transcoding a wtv file which is just a container around mpeg2.  I can see in the logs that it is transcoding, but it never uses hardware transcoding as indicated by the log and intel-gpu-tools. I'm using Jellyfin v10.11.0 RC4.

I attached the jellyfin logs since I'm sure there are some useful nuggets there.  There are 2 logs because I'm running on 2 CPUs.

I verified the GPU pass through with the following commands.
root@jellyfin:/var/log/jellyfin# /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
Trying display: drm
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel iHD driver for Intel® Gen Graphics - 25.2.6 (c6ab0c9)
vainfo: Supported profile and entrypoints
      VAProfileNone                  : VAEntrypointVideoProc
      VAProfileNone                  : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264Main              : VAEntrypointVLD
      VAProfileH264Main              : VAEntrypointEncSlice
      VAProfileH264Main              : VAEntrypointFEI
      VAProfileH264Main              : VAEntrypointEncSliceLP
      VAProfileH264High              : VAEntrypointVLD
      VAProfileH264High              : VAEntrypointEncSlice
      VAProfileH264High              : VAEntrypointFEI
      VAProfileH264High              : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline          : VAEntrypointVLD
      VAProfileJPEGBaseline          : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain              : VAEntrypointVLD
      VAProfileHEVCMain              : VAEntrypointEncSlice
      VAProfileHEVCMain              : VAEntrypointFEI

root@jellyfin:/var/log/jellyfin# /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
ffmpeg version 7.1.1-Jellyfin Copyright © 2000-2025 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14+deb12u1)
  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 @ 0x5d1849755b80] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x5d1849755b80] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x5d1849755b80] libva: Found init function __vaDriverInit_1_22
[AVHWDeviceContext @ 0x5d1849755b80] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x5d1849755b80] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x5d1849755b80] VAAPI driver: Intel iHD driver for Intel® Gen Graphics - 25.2.6 (c6ab0c9).
[AVHWDeviceContext @ 0x5d1849755b80] Driver not found in known nonstandard list, using standard behaviour.
[AVHWDeviceContext @ 0x5d184978dc80] 0.0: Intel® OpenCL HD Graphics / Intel® HD Graphics 530 [0x1912]
[AVHWDeviceContext @ 0x5d184978dc80] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).
[AVHWDeviceContext @ 0x5d184978dc80] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).
[AVHWDeviceContext @ 0x5d184978dc80] 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'


RE: Intel HW transcoding not working - jvanstensel - 2025-08-14

I think I figured it out. A different wtv file worked with hardware transcoding. I decided to try and stream copy the container from wtv to mp4 and the previously not working hardware transcoding started working. It seems like ffmpeg support for wtv transcoding is limited. That is actually why I'm on v10.11.0 RC4 in the first place because there was a bug with wtv transcoding and the -fps_mode switch.

I wrote a script to stream copy my wtv files into mp4 files. I'll test with that a bit to see if that has any impact and then I'll convert all my wtv files.


RE: Intel HW transcoding not working - jvanstensel - 2025-08-14

There is an impact. I lose the meta-data.