Jellyfin: Difference between revisions
Technics303 (talk | contribs) No edit summary |
KinoCineaste (talk | contribs) m Fixed dead link for Jellyfin's official documentation on hardware acceleration. |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
Jellyfin is | [https://jellyfin.org/ Jellyfin] is an open source media server (Jellyfin Server) with several clients (Jellyfin Media Player and web client). | ||
== Installation and configuration == | == Installation and configuration == | ||
Line 103: | Line 103: | ||
In most cases you want to make most of your hardware. Modern boards often come with a hardware accelerator, all you need to do is enable it! | In most cases you want to make most of your hardware. Modern boards often come with a hardware accelerator, all you need to do is enable it! | ||
Source: https://jellyfin.org/docs/general/ | Source: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/ | ||
=== VAAPI and Intel QSV === | === VAAPI and Intel QSV === | ||
Line 120: | Line 120: | ||
}; | }; | ||
systemd.services.jellyfin.environment.LIBVA_DRIVER_NAME = "iHD"; # Or "i965" if using older driver | systemd.services.jellyfin.environment.LIBVA_DRIVER_NAME = "iHD"; # Or "i965" if using older driver | ||
environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; # Same here | environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Same here | ||
hardware.graphics = { | hardware.graphics = { | ||
enable = true; | enable = true; | ||
Line 126: | Line 126: | ||
intel-media-driver # For Broadwell (2014) or newer processors. LIBVA_DRIVER_NAME=iHD | intel-media-driver # For Broadwell (2014) or newer processors. LIBVA_DRIVER_NAME=iHD | ||
intel-vaapi-driver # For older processors. LIBVA_DRIVER_NAME=i965 | intel-vaapi-driver # For older processors. LIBVA_DRIVER_NAME=i965 | ||
vaapiVdpau | libva-vdpau-driver # Previously vaapiVdpau | ||
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in) | intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in) | ||
# OpenCL support for intel CPUs before 12th gen | # OpenCL support for intel CPUs before 12th gen | ||
Line 142: | Line 142: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== Troubleshooting VAAPI and Intel QSV ==== | |||
You can check supported vaapi profile supported by your CPU / driver with : <code>nix-shell -p libva-utils --run vainfo</code>. If | You can check supported vaapi profile supported by your CPU / driver with : <code>nix-shell -p libva-utils --run vainfo</code>. If | ||
You can check the OpenCL properties and devices available on the system with : <code>nix-shell -p clinfo --run clinfo | You can check the OpenCL properties and devices available on the system with : <code>nix-shell -p clinfo --run clinfo</code>. If clinfo shows <code>Number of platforms 0</code> on the first line, OpenCL is not enabled or available. | ||
The command <code>intel_gpu_top</code>, provided by the <code>intel-gpu-tools</code> package is also useful to check the status of your intel GPU: <code>nix-shell -p intel-gpu-tools --run intel_gpu_top</code>. | |||
At least on Intel N100 CPU, you will need the option <code>hardware.enableAllFirmware = true;</code> otherwise GuC formware will not load properly. Here is the type of error you will get without it : <syntaxhighlight lang="dmesg"> | |||
[ 4.174843] i915 0000:00:10.0: [drm] *ERROR* GT0: GuC firmware i915/tgl_guc_70.bin: fetch failed -ENOENT | |||
[ 4.175621] i915 0000:00:10.0: [drm] GT0: GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 | |||
[ 4.176286] i915 0000:00:10.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 0.0.0 | |||
[ 4.176350] i915 0000:00:10.0: [drm] *ERROR* GT0: GuC initialization failed -ENOENT | |||
[ 4.176977] i915 0000:00:10.0: [drm] *ERROR* GT0: Enabling uc failed (-5) | |||
[ 4.177502] i915 0000:00:10.0: [drm] *ERROR* GT0: Failed to initialize GPU, declaring it wedged! | |||
</syntaxhighlight> | |||
==== VAAPI and Intel QSV on Arc GPU ==== | |||
If you want to use an Arc GPU for transcoding, you may need to override the ffmpeg version used by jellyfin to ensure that it is compiled with <code>vpl</code> and, potentially, <code>unfree</code>. An example to achieve this through [[Overlays|an overlay]]:<syntaxhighlight lang="nix"> | If you want to use an Arc GPU for transcoding, you may need to override the ffmpeg version used by jellyfin to ensure that it is compiled with <code>vpl</code> and, potentially, <code>unfree</code>. An example to achieve this through [[Overlays|an overlay]]:<syntaxhighlight lang="nix"> | ||
Line 177: | Line 190: | ||
[[Category:Server]] | [[Category:Server]] | ||
[[Category:Applications]] | [[Category:Applications]] | ||
[[Category:Web Applications]] |