Enabling hardware acceleration in TrueNAS Scale

I’m running Jellyfin on TrueNAS Scale. I have an Intel iGPU. Is there anything I need to do to enable hardware acceleration, other than selecting my iGPU and associated settings (codecs, etc.) in the Jellyfin app settings? I am not running Docker/VM. Jellyfin is installed straight onto TrueNAS. I’ve seen some things regarding ffmpeg and editing a config file, but I wasn’t sure if that was relevant when Jellyfin is installed directly. Forgive me, I’m extremely new to Linux/TrueNAS.

Just a headsup warning: truenas doens’t support installing additional software on the base os. With the next system update every additional package, driver etc you’ve manually installed will be wiped.

@1baddoggy

Unless something has changed, you shouldn’t need to install drivers separately. I had an iGPU in the past and don’t remember having to install drivers.

I’m not sure what version of TrueNAS Scale you’re using. If it’s Dragonfish, you need to ‘Edit’ the Jellyfin app, and near the bottom of the configuration there should be an option for Intel GPU. If I remember correctly, you just need to change the 0 to 1, save the changes, and the app will restart.

If you’re using the Eel Beta, I don’t know the options for the apps yet, but it’s likely very similar.

You will also need to enable hardware acceleration in Jellyfin.

1 Like

You mean to tell me all the apps I’ve installed from the TrueNAS catalog will be wiped? Why would they do that?

No. @LarsR was explaining that any OS-level drivers/packages you install will be wiped on update. This is correct.

@Jorsher explained that you should not need to install iGPU drivers, along with how to make sure you’ve enabled the GPU in the app’s settings. Apps are not wiped on update.

Then your statement is a bit missleading, since the apps on scale are still containerized like docker, but just a different orchestrator. Therefore i wrongfully assumed you’ve simply enabled dev mode and used apt to install jellyfin on the base os.

1 Like

Thank you for this explanation.

Go to Apps in TrueNAS, click Jellyfin, click “Edit” at the top right, scroll to the bottom, you’ll see Intel GPU set to “0”, change this to “1”, click “Save”, the app will reload. Once it’s loaded, make sure hardware acceleration is enabled in Jellyfin settings through its web interface or config.

1 Like

Sorry, I’m new to this. I appreciate your help!

We were all new at some point. Let us know if it does or doesn’t work.

1 Like

How can I confirm whether it’s working or not?

In my case with Plex, if HW acceleration is not working, the CPU fans spin up, lights dim, and room heats up. The dashboard in Plex and TrueNAS both show increased CPU utilization.

Stream a 4K video and see if your CPU utilization increases drastically. I have never used Jellyfin so do not know where it displays whether it’s working or not.

Hi everyone, I’m running into the same problem, with an equivalent config, I can’t find where to enable HW acceleration with a N100 on Electric Eel TrueNAS.
Could someone help me ? :slight_smile:

Bump @Jorsher

I am on Electric Eel (24.10.1) and I can’t find a way to enable hardware acceleration in Jellyfin as well.

I’m about as brand new to home servers/labs as can be, and it was a struggle just getting Jellyfin to “see” my media files with the correct permissions. It can play media, but stutters extremely badly without hardware acceleration. I can’t enable QSV or VAAPI without encountering a fatal error from Jellyfin.

There’s no option to “edit” Jellyfin when it comes to changing the Intel GPU value from 0 to 1, just an option for turning on a GPU Passthrough.

I’m running on an Intel Celeron N5105 with integrated graphics, if that makes a difference.

I’m in the exact same boat. Got everything sorted in terms of permissions etc, but there is clearly an issue with transcoding not being accelerated via the iGPU.

Everything I have read suggests doing something with the resource allocation section at the bottom of the settings via the “Edit” button on the Apps screen, but nothing I have read exists there. Things have clearly changed with an update to either TrueNAS or the community app, but I have yet to come across an up to date answer.

I have it working. All the configuration has to be done via the Jellyfin dashboard (other than that GPU passthrough being checked in the App configuration in TrueNAS).

Honestly a little embarassed. Got so caught up in the TrueNAS-ness that I forget everything I ever learned playing around with Jellyfin locally on my laptop, the whole point of which was to be better prepared for when my TrueNAS kit arrived.

Anyway… in the Jellyfin dashboard, Playback → Transcoding. Hardware acceleration should be disabled by default. Switch it to QSV (assuming you are on Intel, as I am). The device path should be as per the example given, i.e. /dev/dri/renderD128 (this is just an assumption based on using the same app deployment, but I see no reason for it to be incorrect). You can run something like “ls -l /dev/dri” in the TrueNAS shell to check though.

Now just configure the codecs you would like to allow etc, save settings, and boom, transcoding. I use a raw blu-ray rip of the Dune 2 UHD copy I own as a test file, and I shot up from the software transcode speed of ~7 fps to ~104 fps.

Where are you seeing your FPS?

I’ll be giving this a try in a bit. I played around with the transcoding stuff in Jellyfin for a bit, both QSV and VPAAI or whatever it’s called and couldn’t get em to work.

Maybe I had the wrong rendering device path or something, I’ll report back.

Edit: I’m a goddamn moron. I had the hardware acceleration QSV settings setup nearly right the first time. This particular media server I’m setting up I’m making a conscious effort of only adding/ripping media in x265/HEVC format, and I forgot to check that box when I turned on QSV. That led to a fatal error, but now that I have that checked, everything runs smooth as butter.

On the client device, the cog menu bottom right has a “Playback Info” or something similar. Shows the source file, the reasons for transcoding, and the transcoding performance, in both absolute FPS and also as a ratio. Looks something like “100 FPS (4.13x)”