tollgate 8 Posted November 23, 2024 Posted November 23, 2024 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
Q-Droid 989 Posted November 23, 2024 Posted November 23, 2024 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.
tollgate 8 Posted November 23, 2024 Author Posted November 23, 2024 Hello Q-Droid. Thanks for your comment. I reduced the quality to 1080 at 8 mbs. Frame rate increased but only to 15 fps. New log attached. ffmpeg-transcode-3b441992-97b0-414e-be36-8da8f967eaca_1.txt
Q-Droid 989 Posted November 23, 2024 Posted November 23, 2024 Have you tried other 4k media and is it consistent with different files?
tollgate 8 Posted November 23, 2024 Author Posted November 23, 2024 Yes. Same with other 4K files. I did just try Jellyfin and it works fine.
Q-Droid 989 Posted November 23, 2024 Posted November 23, 2024 Can you attach your hardware detection log?
tollgate 8 Posted November 23, 2024 Author Posted November 23, 2024 Yes and attached. hardware_detection-63867962097.txt
Q-Droid 989 Posted November 23, 2024 Posted November 23, 2024 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.
tollgate 8 Posted November 23, 2024 Author Posted November 23, 2024 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.
Q-Droid 989 Posted November 23, 2024 Posted November 23, 2024 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.
tollgate 8 Posted November 23, 2024 Author Posted November 23, 2024 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
Q-Droid 989 Posted November 23, 2024 Posted November 23, 2024 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.
Solution tollgate 8 Posted November 24, 2024 Author Solution Posted November 24, 2024 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. 2
Q-Droid 989 Posted November 24, 2024 Posted November 24, 2024 (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 November 24, 2024 by Q-Droid
tollgate 8 Posted November 24, 2024 Author Posted November 24, 2024 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. 1
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now