HWA overview
Jellyfin supports hardware-acceleration for transcoding videos. This greatly speeds up transcodes for clients that don’t support streaming passthrough for H.265 (looking at you, Firefox).
Intel’s Arc GPUs are a very cheap way to enable cheap hardware-accelerated encoding as you can get a GPU that supports all mainstream codecs for ~£100.
Prerequisites
The notes on Jellyfin’s site1 don’t fully describe what is needed on Debian systems.
As of the time of writing, Debian 12’s packaged kernel has issues; you will receive i/o errors on attempting to transcode with jellyfin-ffmpeg. The kernel version packaged with Debian 13 (6.12.20 as of the publication date) does not have this issue but is not yet officially released.
The intel-opencl-icd
package doesn’t yet exist in the Debian 13 repositories so you will have to download the Intel-packaged releases instead; these can be downloaded and installed by running:
wget https://github.com/intel/intel-graphics-compiler/releases/download/v2.8.3/intel-igc-core-2_2.8.3+18762_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/v2.8.3/intel-igc-opencl-2_2.8.3+18762_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/25.09.32961.5/libigdgmm12_22.6.0_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/25.09.32961.5/intel-opencl-icd_25.09.32961.5_amd64.deb
dpkg -i libigdgmm12_22.6.0_amd64.deb
dpkg -i intel-igc-core-2_2.8.3+18762_amd64.deb
dpkg -i intel-igc-opencl-2_2.8.3+18762_amd64.deb
dpkg -i intel-opencl-icd_25.09.32961.5_amd64.deb
Along with this, you will need the firmware-linux-nonfree
package from the Debian non-free repositories for low-power transcoding support.
If, like me, you’re running Jellyfin in a VM, you will need to pass through the GPU PCI address to the guest.
You can then use intel_gpu_top
to verify that Video/VideoEnhance go over 0% during Jellyfin playback.
Annoyances
Sparkle’s firmware for the A310 is completely fucked. The fans will constantly ramp up and down giving an annoying whine. If you’re using a Sparkle GPU, you can use a standard JST PH2.0 to Molex KK (mini-to-standard) adapter and set a static PWM at 25%+ on the motherboard BIOS.