sudo usermod -aG render jellyfinĬonfigure VA-API acceleration in the Transcoding page of the Admin Dashboard.Įnter the /dev/dri/renderD128 device above as the VA API Device value. Make sure that jellyfin-ffmpeg version 4.4.1-2 or higher is installed.Ĭheck the output of /usr/lib/jellyfin-ffmpeg/vainfo.Īdd the Jellyfin service user to the above group to allow Jellyfin's FFMpeg process access to the device, and restart Jellyfin. On some releases, the group may be video or input instead of render.
If you get driver information, everything is fine but if you get an error like couldn't find libnvidia-ml.so library in your system you need to run the following command: docker exec -it jellyfin ldconfigĪfter that, you should ensure the NVIDIA driver loads correctly. Once the container is started you can again validate access to the host resources: docker exec -it jellyfin nvidia-smi You may need to add this user to the video group on your host machine: usermod -aG video There are some special steps when running with the following option: -user 1000:1000
Or with docker-compose >1.28, add the deploy section to your Jellyfin service: services: Start your container by adding this parameter: -gpus all \Ī complete run command would look like this: docker run -d \
NVIDIA Container Toolkit needs to be installedįollow the instructions in the link above to install the NVIDIA Container Toolkit for your Linux distribution.NVIDIA GPU with Architecture > Fermi (2.1).GNU/Linux x86_64 with kernel version > 3.10.In order to achieve hardware acceleration using Docker, several steps are required. NVIDIA hardware acceleration on Docker (Linux) device /dev/dri/renderD128:/dev/dri/renderD128 \Īlternatively, you can use docker-compose with a configuration file so you don't need to run a long command every time you restart your server. group-add=122 \ # Change this to match your system
You can use docker run to start the server with the required permissions and devices.Īn example command is shown below. The render group id can be discovered in /etc/group such as render:x:122. VA-API may require the render group added to the docker permissions. To see what video devices are available, you can run sudo lshw -c video or vainfo on your machine. In order to use hardware acceleration in Docker, the devices must be passed to the container. This are general instructions, for more specific instructions pleas check the next sections! Please consider upgrading these videos to HEVC 10-bit aka Main10 profile if you want to offload your CPU usage during transcoding. The hardware decoding of H.264 10-bit aka High10 profile video is not supported by any Intel, AMD or NVIDIA GPU. On Linux you can check available GPU using: lspci -nn | egrep -i "3d|display|vga" The hardware acceleration is available immediately for media playback. Select a valid hardware acceleration option from the drop-down menu, indicate a device if applicable, and check Enable hardware encoding to enable encoding as well as decoding, if your hardware supports this. Hardware acceleration options can be found in the Admin Dashboard under the Transcoding section of the Playback tab.
QSV uses a modified (forked) version of VA-API and interfaces it with libmfx and their proprietary drivers (list of supported processors for QSV).VA-API is a Video Acceleration API that uses libva to interface with local drivers to provide HWA.Jellyfin supports hardware acceleration (HWA) of video encoding/decoding using FFMpeg.įFMpeg and Jellyfin can support multiple hardware acceleration implementations such as Intel Quicksync (QSV), AMD AMF and NVIDIA NVENC/NVDEC through Video Acceleration APIs.