Jellyfin LXC with Hardware Transcoding/ iGPU Passtrough

After Plex Media Server, we will see how to set up a Jellyfin on a Proxmox LXC with hardware transcoding by passing the iGPU to the container. LXC container offers better resource isolation, easier management, and more efficient backups and migrations compared to a bare-metal setup. This method does not use the traditional PCIe passthrough for the GPU, so no Proxmox IOMMU host configuration is required to enable hardware transcoding. This guide utilizes the excellent tteck Proxmox Jellyfin LXC script to largely automate the setup of a Plex LXC, including the necessary GPU drivers and LXC configuration for these GPU offload features.
Check for iGPU
First we want to verify that your host recognizes the GPU.
- Open a terminal on your Proxmox host.
- Run the following command to check for the presence of an iGPU
lspci -v | grep -e VGA

Then we want to know if the drivers are correctly loaded
- Ensure the iGPU drivers are loaded by running:
lsmod | grep i915

We can also get more details about the pci device, we want to see "Kernel driver in use: i915 "
sudo lspci -v -s 00:02.0

Since we will use the video group, ensure that the device is correctly loaded:
sudo ls /dev/dri

LXC installation
Enter the following command to start the Jellyfin LXC installation via the tteck script:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin.sh)"
Press Enter to confirm when prompted with "Yes".








Then default settings for the others settings
Verify iGPU installation
Following this is the classic Jellyfin Server configuration that I will not cover here.
We just want to know if the iGPU is passed correctly to the LXC and activate Intel QuickSync in the parameters.

Enter the LXC using pct:
sudo pct list
sudo pct enter 101

See the /dev/dri mounted and used:
ls -la /dev/dri

Fine ! Now we just need to test hw transcoding in Jellyfin by launching a media and choose another quality

Also we can check the ffmpeg Process using intel_gpu_top from the package intel-gpu-tools
sudo intel_gpu_top

By following these steps, you should have a fully functional Jellyfin Server with hardware transcoding enabled all inside a LXC container!