Setting up Jellyfin Hardware Acceleration - 12600k


halexh

Recommended Posts

Hi,

 

Just started using unraid for the first time about a week ago and it has been great. Got the *arr suite of software setup, along with my downloaders, and now trying to configure jellyfin to utilize quiksync within my i5-12600k on my ASUS TUF GAMING Z690-PLUS WIFI D4 motherboard.

 

I am utilizing binhex's jellyfin container. Within the setup of the container in unraid, I have added the following to the extra parameters section:
 

--device /dev/dri/renderD128:/dev/dri/renderD128 --device /dev/dri/card0:/dev/dri/card0

 

I can obviously see this within the Jellyfin container's shell.

 

I have also installed intel_top_gpu as a means of confirming the transcoding is actually utilizing the iGPU. This is what I see when running that, obviously no load since its not being utilized.

intel-gpu-top: Intel Alderlake_s (Gen12) @ /dev/dri/card0 -    0/   0 MHz; 100% RC6;  0.00/ 6.66 W;        0 irqs/s

         ENGINES     BUSY                                                                                                          MI_SEMA MI_WAIT
       Render/3D    0.00% |                                                                                                      |      0%      0%
         Blitter    0.00% |                                                                                                      |      0%      0%
           Video    0.00% |                                                                                                      |      0%      0%
    VideoEnhance    0.00% |                                                                                                      |      0%      0%

   PID              NAME           Render/3D                      Blitter                        Video                      VideoEnhance 

 

If I attempt to utilize either VAAPI or Intel Quicksync in the Transcoding settings of Jellyfin, I am met with the following when attempting to play something:

 

Quote

Playback Error
This client isn't compatible with the media and the server isn't sending a compatible media format.

 

When I select VAAPI, it correctly defaults to /dev/dri/renderD128

 

Lastly, just for the sake of conforming with all the other instructions I have found. I created /boot/config/modprob.d/i915.conf (because it didnt exist) and added "blacklist i915" to it. Probably pointless, as I believe this only exists to ignore pre-existing drivers in favor of whats in /dev/dri/ ?

 

Anyways, looking for advice on what I am missing. Thanks!

 

 

Link to comment
  • 3 weeks later...

Hi,

I got Jellyfin working with my Intel i5-13500 by simply adding "--device=/dev/dri" to Extra Parameters.

 

In Jellyfin I selected Intel Quicksync and it works as it should.
I have the official Jellyfin Docker image, but I don't think that should make a difference.

 

I hope I can help you.

  • Thanks 1
Link to comment
  • 2 months later...

I finally got this working, simply by switching to the official Jellyfin Docker container.

 

The reason for the switch was that I read somewhere that the official container uses Debian, whereas the other well known Jellyfin containers (linuxserver.io, hotio, etc.) uses Ubuntu. This made me think that some device drivers might actually be present in Debian but not in Ubuntu, for my particular hardware (Intel QuickSync via an i5-13500 CPU).

As soon as I replaced my old linuxserver.io container with the official one, I only needed to add "--device=/dev/dri" to the Extra Parameters section when creating the container. After this, hardware transcoding worked straight away after enabling it in the Jellyfin control panel.

 

Do note that I did add a line with modprobe i915 into the Go file when trying to get HW transcoding to work with the linuxserver.io and hotio containers, so this line is still in my Go file. I have not tried removing it to see if the official container still works, so you might as well try the official container without changing the Go file. If it does not work, then just change the Go file (please let us know if this is necessary or not).

 

If you need instructions on how to edit the Go file, you can follow the below:

  • You can edit the Go file easily by opening a terminal window directly via the Unraid GUI
    • image.png.9d0c7dd10411cf802228845c377045bc.png
  • In the terminal window, type the command:
    • nano /boot/config/go
  • Add the following line at the bottom of the Go file
    • modprobe i915
  • When you are done, press Ctrl + X, followed by Enter to confirm the file name, to save the file.
  • Then restart the computer.

 

Link to comment
  • 2 weeks later...

quick feedback: switched to the official jellyfin docker as proposed. Did not change anything with the go file, just installed intel-gpu-top, added the parameter to the jellyfin docker and selected quicksync for hardware decoding. Works for intel 12500

 

Read this from the intel-gpu-top app information: "This plugin adds the tool 'intel_gpu_top' to your unRAID server and also enables your Intel iGPU from the installation of this plugin on, so no editis to the 'go' file or creation of other files are necessary." So it seems with installing the app from the app store, the go file is already updated, no manual update needed.

 

Thanks for pointing this out, really helped me out :)

Link to comment
  • 2 weeks later...
  • 1 month later...
  • 4 months later...
  • 2 weeks later...
10 hours ago, wayner said:

There is talk in this thread about the "official" Jellyfin docker.  Where is that?  When I look in apps in unRAID I see the binhex, linuxserver, and hotio dockers.  But I don't see an official one.

The template for the official one was removed recently because the maintainer of the template wasn't able anymore to maintain it anymore. I guess you can just select one of the template available in the App Center and just use the official docker image in the field "Repository" (it is jellyfin/jellyfin ). Of course you should adapt the container internal paths

Edited by quietwalker
  • Like 1
Link to comment
  • 3 weeks later...
On 12/28/2023 at 10:04 AM, quietwalker said:

The template for the official one was removed recently because the maintainer of the template wasn't able anymore to maintain it anymore. I guess you can just select one of the template available in the App Center and just use the official docker image in the field "Repository" (it is jellyfin/jellyfin ). Of course you should adapt the container internal paths

Facing same issue now, tried editing the repository url from the linuxserver with no success, tried installing the intel igpu plugin with no success too

 

May you share the official template? Since seems you all did solve with that and we have no reference

Thanks

Link to comment

There is the bbergle/jellyfin that states

 

This uses the offical Jellyfin container. This official container should help more people with hardware transcoding since this is a Debian base image instead of ubuntu

 

to me transcoding does not work anyways, just wanted to flag that there is already a template using the official image

Link to comment
4 hours ago, mich2k said:

May you share the official template?

sure, if it may help you.

 

4 hours ago, mich2k said:

tried installing the intel igpu plugin with no success too

In alternative you can install GPU Statistic plugin (this is the package URL: https://raw.githubusercontent.com/b3rs3rk/gpustat-unraid/master/gpustat.plg)

 

3 hours ago, mich2k said:

to me transcoding does not work anyways

have you added the following in the Extra Parameters setting of Jellyfin container (you have to enable the advanced view)?

--device=/dev/dri

 

If you have done it, check in the host and into the docker container (with docker exec -it <container name> bash or using the Unraid interface to open a terminal session into the container) if that device is available.

 

 

jellyfin-template.xml

  • Like 1
Link to comment
On 1/12/2024 at 8:07 AM, mich2k said:

There is the bbergle/jellyfin that states

 

This uses the offical Jellyfin container. This official container should help more people with hardware transcoding since this is a Debian base image instead of ubuntu

 

to me transcoding does not work anyways, just wanted to flag that there is already a template using the official image

Yes, I added the template because I read this thread and saw that the official container was removed.  After adding --device=/dev/dri, transcoding with the intel iGPU worked first try.

Edited by BBergle
  • Like 1
Link to comment
On 1/14/2024 at 6:45 AM, BBergle said:

Yes, I added the template because I read this thread and saw that the official container was removed.  After adding --device=/dev/dri, transcoding with the intel iGPU worked first try.

thank you for reaching out, actually I was having two issues: templates not using official image AND I had to enable the Low power HuC/GuC due my processor type

Thank you for the template :)

Link to comment

Wait, HW acceleration with QSV option is not working for me on i5 13500 using the hotio jellyfin?

I am just setting things up so I cannot play any files at the moment.

Just to avoid confusion, is adding --device=/dev/dri in the hotio container extra parameters enough?

Link to comment

I've just set up my Jellyfin using the "bbergle/jellyfin" and transcoding appears to be working. ASRock motherboard and Intel 12600K. Unraid 6.12.6

I think the comments in the posts above about using the official Jellyfin image is correct.

 

I added  --device=/dev/dri in to Extra parameters and also added a path for transcode to /dev/shm to use some RAM for transcoding.

 

I can see iGPU is active on GPU Statistics plugin or when I type intel_gpu_top in the terminal.

 

I left the network option to host (not bridge or custom network) as I was having some issues connecting my android devices. I am not sure what was the trouble but I can reach the server if Jellyfin container network is set to Host!

 

I hope the above comments are helpful for other noobs like me trying to get Transcoding to work.

Link to comment
  • 3 weeks later...
On 1/25/2024 at 4:49 PM, maullah said:

I've just set up my Jellyfin using the "bbergle/jellyfin" and transcoding appears to be working. ASRock motherboard and Intel 12600K. Unraid 6.12.6

I think the comments in the posts above about using the official Jellyfin image is correct.

 

I added  --device=/dev/dri in to Extra parameters and also added a path for transcode to /dev/shm to use some RAM for transcoding.

 

I can see iGPU is active on GPU Statistics plugin or when I type intel_gpu_top in the terminal.

 

I left the network option to host (not bridge or custom network) as I was having some issues connecting my android devices. I am not sure what was the trouble but I can reach the server if Jellyfin container network is set to Host!

 

I hope the above comments are helpful for other noobs like me trying to get Transcoding to work.


I am able to get it to work on this docker app as well. But it doesn't work with my reverse proxy for some reason. The binhex one works over reverse proxy.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.