Home servers

How to check whether Jellyfin uses hardware transcoding

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.

Sources