Jump to content

Hardware acceleration working but low fps


Go to solution Solved by tollgate,

Recommended Posts

Posted

I have a mini PC with a Jasperlake CPU. Hardware acceleration is working OK on 1080 files that need transcoding.

But on 4K files (which I normally direct play with no issue), if I want to watch on my laptop  they do HW transcode but the frame rate is only around 12 fps.

File size is 15Gb. 4K HDR 10 HEVC.  15mbps.

I've read the Jasperlake should transcode up to two 4K files at the same time.

Temp transcode folder is on an SSD.

Should it work or am I expecting too much?

 

 

ffmpeg-transcode-f8163ff6-af21-4ac2-bb87-8b0976e9da27_1.txt embyserver.txt

Posted

From what I can see in the log it's transcoding 4k HEVC to 4k H264 with a bitrate around 22mbps. If you can't direct play the 4k HEVC content then you'd probably want to limit transcoded output to 1080p.

 

Posted

Have you tried other 4k media and is it consistent with different files? 

Posted

Yes. Same with other 4K files. I did just try Jellyfin and it works fine.

Posted

Can you attach your hardware detection log? 

Posted

I think you might be missing some config for HW accel. And you appear to be running Arch...🫤

I don't see QuickSync detection succeeding.

For starters you need to make sure the emby runtime user has access to the graphics devices in /dev/dri. Normally this means the emby user needs to be a member of video and render groups.

To check the group ownership from a command shell:

ls -l /dev/dri

If you have an emby user then make sure it has those additional groups. If you're running using the Arch default DynamicUser in systemd then you need to add the supplementary groups  by extending the systemd service unit.

 

 

Posted

Thank you for taking the time to look at the log.

Yes. Arch.

Running as user emby - added to video and render groups.

DynamicUser set to false.

HW acceleration is working but still only manages 16fps. Please see jpg attached.

20241123_170537.jpg

Posted

Did user emby have those group all along or did you just add them? If you just added then restart the server and attach the new HW detection log. 

Detection was not picking up all of the iGPU capabilities but Jasper Lake has a history of being problematic. You have a current kernel and OS so that shouldn't be a problem with this older CPU.

You might have to search the forums for specific info on Jasper Lake if all of the above are already in place. One more place to check could be the BIOS/EFI to make sure the graphics adapter is always enabled.

And the devs might have some input on the HW detection not picking up all of the features for this CPU.

 

Posted

User emby was not in those groups so I added them. I then restarted the server. New log attached.

As previously mentioned, Jellyfin playing the same file on the same machine is OK so it does seem to be emby specific.

Thank you again.

hardware_detection-63867977958.txt

Posted

No change in the HW detection, still failing on QSV. Something isn't right but I can't decipher what's in the transcoding log. Emby isn't using all of the iGPU's capabilities but I don't know why. This is something the devs might be able to help figure out.

Posted

OK. Thanks for checking again.

  • Solution
Posted

Hello again Q-Droid. You have helped me solve the issue! Thank you.

I have assumed Quick Sync = VAAPI. I've been using VAAPI in Emby for 1080 files with no issue. But 4K no. I researched the Arch wiki again. It points to VAAPI.

You kept mentioning QuickSync. Then I found this reference on Wikipedia:

"Quick Sync support on Linux is available by both Intel VAAPI Driver (legacy, pre-Broadwell) and Intel Media Driver (Broadwell and newer) which also uses VA-API, and through the Intel Media SDK."

I installed Intel Media SDK. Rebooted. Now in Emby I have the choice of VAAPI or QuickSync.  I chose QuickSync for all decoders. Now I can transcode 4k at 40-80 fps.

 

 

  • Like 2
Posted (edited)

Awesome. This is one of the reasons I'm not an Arch fan. On most Linux distros the Intel drivers are bundled in the Emby package but Arch has to be different. Maybe I'll remember this for future reference. At least their documentation is decent.

The first link is good for installation and setup and it's the second link is where all the dependencies are listed for Arch. With this info you should be able to get both QuickSync and VAAPI working the same on your server. They should be close in performance when all the drivers are installed with a slight edge on speed and better tone mapping with QSV.

https://wiki.archlinux.org/title/Emby

https://archlinux.org/packages/extra/x86_64/emby-server/

Edited by Q-Droid
Posted

I totally missed https://wiki.archlinux.org/title/Emby. This is the great thing about forums. Point you to things that should have been obvious!

QuickSync is giving me about 9% more fps over VAAPI on 1080 files.

Thanks again.

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...