The short version
On Linux, Jellyfin can use VA-API or QSV to use the Intel GPU. Before changing settings, check the DRM device, permissions, and codecs from the driver.
1. Check the video device
ls -l /dev/dri/
id jellyfin
The Jellyfin user must be able to use renderD128. This is usually done with
the render group, and sometimes also with the video group.
2. Check VA-API
sudo vainfo --display drm --device /dev/dri/renderD128
Look for decode and encode profiles for the formats you use. Even with a good driver, some combinations of codec, subtitles, and tonemapping may still not work on the GPU.
3. Check the Jellyfin setting
In Dashboard → Playback → Transcoding, select VA-API or QSV and the correct DRM
device. Then play something that needs transcoding and check the Jellyfin log.
You should see a hardware encoder, not only libx264 or libx265.
Important limits
Hardware transcoding does not solve everything. Image subtitles, tonemapping, and some audio conversions can still use the CPU. Test with real files from your library.