-
Posts
25 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Store
Gallery
Bug Reports
Documentation
Landing
Posts posted by nyanmisaka
-
-
Jellyfin AV1 Hw/Sw Encoding Preview
- 3
-
The GPU firmware loading is broken in Linux 6.1, which is required by the QuickSync. So it makes no sense to use "force_probe".
-
10 hours ago, Beaniiman said:
hmm, I did that and it appears the same issue is still there. Looking at the logs its the same problem.
I used the jellyfin/jellyfin docker from the store, the official one. Are there more things I need to change in that config?
https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#official-docker
Read the step 1 and 2. Set the correct "group-add" value.
-
8 hours ago, Beaniiman said:
OK I tried that as well as "input" and got 2 different error messages. I never saw anything about creating a user anywhere, what do I do now? Thanks for the help btw, learning slowly.
# sudo usermod -aG render jellyfin
sudo usermod -aG video jellyfin
sudo usermod -aG input jellyfin
usermod: group 'render' does not exist
usermod: user 'jellyfin' does not exist
usermod: user 'jellyfin' does not existYou didn't use the deb installation package, right? jellyfin user comes with the jellyfin-server*.deb package. If you use portable jellyfin build, you need to add the current user to the render group.
usermod -aG render $USER usermod -aG video $USER
-
30 minutes ago, goodolwheatie said:
Do you need a Linux 6.2 custom kernel for this to work? I tried running Docker Jellyfin with just unRaid 6.12 RC2 and it is detecting the video card after I did the probe stuff. I'm just getting these errors. It works fine if I use my IGPU Intel 13500.
[h264_qsv @ 0x56080e203e80] Error during QSV decoding.: device failed (-17) Error while decoding stream #0:0: Input/output error [h264_qsv @ 0x56080e203e80] Err or during QSV decoding.: device failed (-17) Error while decoding stream #0:0: Input/output error
Correct. Linux 6.2 is the first version that has full ARC support at kernel level.
-17 device failed error means your current kernel driver doesn't support QSV yet. You have to wait Unraid to update its kernel.
QuoteJellyfin server 10.8.9+ and the latest jellyfin-ffmpeg5 support Intel ARC discrete GPU on both Windows and Linux 6.2+.
-
1 hour ago, Beaniiman said:
Is this what you need? See Attached.
You didn't set the correct permissions to allow Jellyfin to access /dev/dri/renderD128.
We have detailed instructions on setting up hardware acceleration.
On host:
sudo usermod -aG render jellyfin
sudo usermod -aG video jellyfin
Docker:
Also, use QSV instead of VA-API.
- 1
-
2 hours ago, Beaniiman said:
OK, now trying jellyfin for the first time and can not seem to get transcoding to work at all. I just get an error during playback. Anyone used jellyfin with an ARC GPU that could help out a newbie.
Please share the ffmpeg transcode log file.
-
The OneVPL runtime is required for using QSV AV1 encoder, which is not supported by legacy MediaSDK.
Jellyfin's ffmpeg 6.0 builds support OneVPL and bundled its runtime.
https://github.com/jellyfin/jellyfin-ffmpeg/releases/tag/v6.0-1
- 1
-
Are you sure the FFmpeg cli used in Tdarr is the optimal? I don't see any reason you only get ~220fps (1080p?) on Arc.
In Jellyfin you can get 600fps 1080p and 180~200fps 4k even with tone-mapping enabled.
Also the unoptimized FFmpeg cli can result in high CPU usage.
-
We updated our Jellyfin docs with more tips and instructions for the new ARC GPU.
https://jellyfin.org/docs/general/administration/hardware-acceleration/intel#arc-gpu-support
- 1
-
Switch to the dev/unstable 10.9 branch you will get HDR and DoVi P5 tone-mapping out of the box.
https://github.com/linuxserver/docker-mods/pull/544#issuecomment-1407467569
- 1
-
On 2/25/2023 at 10:41 AM, J05u said:
Which APU do you use ?)Ryzen 7 5700G
I'd like to upgrade to the 7040 series Zen 4 desktop APU in the future, which should supports PCIe 4.0/5.0.
-
20 minutes ago, ich777 said:
But what are they using by default?
If VA-API is used the latest Intel Media Drivers are not necessary and it should work right OOB. If they are using QuickSync by default it won't work, that's fore sure.
I'm not really a Plex user, I have a copy from Plex for testing purposes but nothing more and as I noticed lately they seem to transform their platform a bit, at least it seems to me that they are taking a turn into a wrong direction.
$ strings /usr/lib/plexmediaserver/lib/dri/iHD_drv_video.so | grep "iHD driver" Intel iHD driver for Intel(R) Gen Graphics - 22.4.4 (2bbbd9b)
media-driver 22.4.4
They don't enable libmfx/libvpl in their FFmpeg build configs. So they use VA-API on Intel.
- 2
-
On 2/19/2023 at 11:03 PM, ich777 said:
You have to only replace the bz* files and the changes.txt file if you want to upgrade…
Exactly, but since I‘m only testing whats currently possible with ARC I don‘t have to do this currently.
This is also not entirely true… have you compiled the Kernel yourself? Maybe something went wrong there since I have no issue usig the card with Emby.
I‘m not too sure about Plex because I don‘t know if they are using QuickSync (which is not ready yet for ARC) but if they are using the VA-API it should be no issue at all but I can also imagine if you have a second card installed which actually uses /dev/dri/renderD128 and your ARC card is /dev/dri/renderD129 in the system this will cause issues and you need to map it from the host to the container with something like that in the template:
--device=/dev/dri/renderD129:/dev/dri/renderD128
And you also have to map the card from 1 to 0 like:
--device=/dev/dri/card1:/dev/dri/card0
This should work for Plex too if they are using VA-API instead of QuickSync.
https://forums.plex.tv/t/anybody-get-hw-transcoding-working-with-the-a380-on-ubunutu/823618
I doubt it will work on Plex as they are still using outdated Intel UMD drivers and libs that don't match the upstream 6.2 kernel.
And yes Plex only support VA-API interface instead of QuickSync interface in their modified FFmpeg.
- 1
-
On 2/21/2023 at 7:59 AM, Clockwork Elf said:
kernel 6.2 was just released, does that mean that the next unraid version will include it or it is unkknown?
I think since 6.1 is the new LTS, they'll upgrade to it first.
- 1
-
56 minutes ago, FlyingTexan said:
You mentioned enabling ASPM in the bios. Is that something all bios have? Have you measured what it changes? I'm seeing people mention that intel came out with a recent update to address this for windows but it wasn't exactly successful. People saying it's still pulling 20w at idle. Not that that's the biggest issue in the world.
Please refer to the motherboard manual. Most of the Intel boards have this option.
And here's the guidance of enabling ASPM on MSI Z690 motherboard with ARC A380.
-
Quote
I know system ram is slower than VRAM but the igpus are still able to encode many more streams at once so was under the assumption it’s still fast enough.
14th Gen Core seems to be the best choice for you. But without the VRAM cap the ARC A770 LE 16GB can do even more than iGPU.
I use AMD APU on my server because it is energy efficient. This prompted me to choose ARC and enable ASPM in BIOS to avoid high power consumption at idle state.
QuoteWhat is your take on the a380? Are you glad you have it? The one thing you stated that really has me perked up is the hw transcode having the same quality as software.
130 bucks, MSI low profile A380. I don't gaming on it so it fits my use case perfectly. What I said is DG2 can match x265 software encoder at "medium preset" as per the slide from Intel. With slower presets I think x265 encoder is still the best but the FPS can be very slow even on modern processors.
QuoteDoes that translate to x264 for Plex or not really matter yet because it’s not using the appropriate libraries?
Yes but not quite, I also made some tweaks to Jellyfin's FFmpeg to unleash its fullest potential on both Linux and Windows.
QuoteAre you saying that Jellyfin supports HEVC->HEVC transcoding out of the box?
Yes, on supported clients such as Android App and Safari the HEVC->HEVC transcoding is supported out of the box. I used MS Edge with our web client preview for the FPS demonstration.
-
9 hours ago, jsrk said:
Thank you for the explanation. Do you think we are going to see a transcode to AV1 option in jellyfin in the future? As almost all browsers have excellent AV1 support this could come in quite handy, especially if the bitrate is too high for the connection.
Sure. But I don't have an ETA on it.
- 1
-
14 hours ago, FlyingTexan said:
Are you not able to use the system memory as the /tmp for transcoding and use the card for the power? If I recall, plex defaulted to using the SSD for transcoding and I made it switch to using my system memory since I have 64GB of it. Can you not allocate that memory to still be used for the transcoding process? Isn't that was resizable BAR is for to share those resources? That's impressive for HEVC-HEVC. I wish plex would move past x264 for it's codec and start enabling this.
It seems you don't understand how hardware transcoding works.
Here's the main steps:
Read Video.mkv => Demux => Raw HEVC bitstream => HW decoder => Decode frames to VRAM
=> Apply HW scaling/deinterlace/tonemapping filters in VRAM => HW encoder => Encode frames from VRAM => Raw H264 bitstream
=> HLS/DASH muxer => Write to your transcode temp folder => Play in your browsers and clients
For high res content such as 4k the "Decode frames to VRAM" step costs VRAM a lot (800MB~1GB per video).
So I was not talking about the capacity of your /tmp folder or RAM. It doesn't help the VRAM that used by HW decoder.
Use RAM as the backup of VRAM at driver level is feasible but it is extremely slow, which involves too much memory copy-back between your VRAM and RAM through PCIe. Resizable BAR doesn't help too in this use case. That's why VRAM on high-end dGPUs is getting bigger and bigger.
It seems Plex don't have plan to transcode to HEVC any time soon from their last reply in r/plex.
I write code for Jellyfin so I added the HEVC encode back in 2020 and I use it for myself to save bandwidth.
- 1
-
The main difference between iGPU and dGPU is the VRAM capacity and iGPU uses your RAM as VRAM, which means dGPU may run out of VRAM but iGPU won't. So you can't compare an entry level card ARC A380 6GB and iGPU directly when is comes to the maximum transcoding capacity. Just buy an ARC A770 LE with 16GB VRAM if you really need that capacity.
In short, the advantages of ARC GPU are encoding quality, peak performance, as well as the QSV AV1 HW encoder that Jellyfin has planned to enable in the future.
As for the quality, ARC / DG2 GPU can match the x265 SW encoder medium preset in many aspects but it's predecessor DG1 / Xe / UHD7xx series can't. Otherwise there's a huge performance penalty you will get on DG1 / Xe / UHD7xx. See https://github.com/intel/media-delivery/blob/master/doc/benchmarks/intel-data-center-gpu-flex-series/intel-data-center-gpu-flex-series.rst
I used many recent Intel GPU such as Xe 96EU, DG1 MAX, ARC A380. Only the A380 can get such a decent performance without sacrificing the quality. I was thinking of buying the Quadro A2000 low profile card for my server but I find it is less efficiency and over priced than ARC in terms of video transcoding.
Jellyfin 10.8.9 transcoding:
4k HEVC SDR -> 1080p HEVC SDR: up to 450fps
4k HEVC DOVI P5 -> 1080p HEVC SDR: up to 360fps
4k HEVC DOVI P5 -> 4k HEVC SDR: up to 230fps
- 2
-
@jsrk The dmesg log has already noticed you where to download the firmware.
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
Find the dg2*.bin and download them with "plain" button to `/usr/lib/firmware`.
Update the initramfs and then reboot.
- 1
-
Jellyfin 10.8.9 docker already supports using Quick Sync and VA-API on Intel Arc / DG2.
On Windows you only need to install the latest driver from Intel.
On Linux you need at least Linux 6.2 kernel. With this version you don't need to hack the Jellyfin build script.
If you compile the kernel with an old config file make sure these new MEI configs are set:
CONFIG_INTEL_MEI=m CONFIG_INTEL_MEI_ME=m CONFIG_INTEL_MEI_TXE=m CONFIG_INTEL_MEI_GSC=m CONFIG_INTEL_MEI_HDCP=m CONFIG_INTEL_MEI_PXP=m CONFIG_INTEL_MEI_WDT=m
Then check these to make sure that the GuC/HuC firmware is loaded without any FAIL or ERROR.
# dmesg | grep i915 # cat /sys/kernel/debug/dri/0/gt/uc/guc_info # cat /sys/kernel/debug/dri/0/gt/uc/huc_info
See also:
https://github.com/jellyfin/jellyfin-ffmpeg/releases
- 1
-
Yes the mesa-va-driver from Debian bullseye has been updated to 20.1.
But jellyfin official container doesn't include any non-free drivers such as intel's iHD driver for QSV.
-
On 12/29/2021 at 9:18 PM, ich777 said:
Seems like that's the case.
Now I also know why QSV is also not supported (first post on this page), thank you for reporting this.
Actually those 1 yrs+ posts are outdated. We have supported HDR10 TM on QSV in the later versions of 10.7.
And with the release of 10.8 (alpha5), both VPP and OpenCL tone-mapping impl got much improved in terms of speed and stability.
Current status of HDR tone-mapping support are as follows:
- 1
Intel Arc support
in General Support
Posted
It means the GuC/HuC firmware is not ready or the Linux kernel is < 6.2.
https://jellyfin.org/docs/general/administration/hardware-acceleration/intel#configure-and-verify-lp-mode-on-linux