Jellyfin: Difference between revisions

No edit summary
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 the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached.
[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/administration/hardware-acceleration.html
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     </code>. If clinfo shows <code>Number of platforms 0</code> on the first line, OpenCL is not enabled or available.
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 ====


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.


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]]