Instructions to setup a dedicated rendering LXC for Jellyfin. Useful for running Jellyfin in a VM and without passing through the whole iGPU, instead passing off to LXCs, allowing using more than one Proxmox host in the cluster for rendering.
- Jellyfin install: https://linuxcapable.com/how-to-install-jellyfin-media-server-on-ubuntu-linux/
- Jellyfin Intel GPU config: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel#lxc-and-lxd-container
- Remote ffmpeg: https://github.com/joshuaboniface/rffmpeg?tab=readme-ov-file
- Minisforum MS-01
- Create a privileged LXC.
- Ubuntu:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/ubuntu.sh)"
- Note: Privileged required in order to use NFS to mount data/cache directories from Jellyfin server.
- Ubuntu:
- Add a Device Passthrough.
- Device Path:
/dev/dri/renderD128
- GID (for Ubuntu 24.04):
993
- Mode:
0660
- Device Path:
- Reboot the LXC
Install dependencies
apt install -y vim apt-transport-https ca-certificates curl gpg intel-opencl-icd
Add Jellyfin repo
curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/jellyfin.gpg > /dev/null
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
apt update
Install Jellyfin FFMPEG
apt install jellyfin-ffmpeg7
Verification
/usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
/usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va