Server Version#: 1.41.0.8994 and 1.41.1.9065
Player Version#: 4.138.0
Hello,
While burning-in subtitles using hardware, HEVC encoded videos automatically switch from hardware encoding to software, and may produce garbled video. Disabling hardware encoding fixes the issue. Disabling subtitles fixes the issue. H264 files burn in subtitles with hardware with no issues. Installing 1.41.1.9065 from the “HEVC Encoding Forum Preview” thread does not fix the issue.
Media info:
Codec HEVC
Bitrate 1417 kbps
Bit Depth 10
Chroma Location left
Chroma Subsampling 4:2:0
Coded Height 800
Coded Width 1920
Color Primaries bt709
Color Range tv
Color Space bt709
Color Trc bt709
Frame Rate 23.976 fps
Height 800
Level 4.0
Profile main 10
Ref Frames 1
Width 1920
Display Title 1080p (HEVC Main 10)
Extended Display Title 1080p (HEVC Main 10)
Codec AAC
Channels 2
Bitrate 163 kbps
Language English
Language Tag en
Audio Channel Layout stereo
Profile lc
Sampling Rate 48000 Hz
Title Surround 7.1
Display Title English (AAC Stereo)
Extended Display Title Surround 7.1 (English AAC Stereo)
Codec AC3
Channels 2
Bitrate 224 kbps
Language English
Language Tag en
Audio Channel Layout stereo
Sampling Rate 48000 Hz
Title Surround 7.1
Display Title English (AC3 Stereo)
Extended Display Title Surround 7.1 (English AC3 Stereo)
Codec PGS
Bitrate 41 kbps
Language English
Language Tag en
Display Title English (PGS)
Extended Display Title English (PGS)
Codec PGS
Bitrate 76 kbps
Language English
Language Tag en
Display Title English (PGS)
Extended Display Title English (PGS)
Codec PGS
Language English
Language Tag en
Display Title English (PGS)
Extended Display Title English (PGS)
GPU info:
root@plex3:~# lspci -v -s $(lspci | grep VGA | cut -d" " -f 1)
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics G1 (Ice Lake) (rev 07) (prog-if 00 [VGA controller])
Subsystem: Dell Iris Plus Graphics G1 (Ice Lake)
Flags: bus master, fast devsel, latency 0, IRQ 137
Memory at 90000000 (64-bit, non-prefetchable) [size=16M]
Memory at 80000000 (64-bit, prefetchable) [size=256M]
I/O ports at 4000 [size=64]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [100] Process Address Space ID (PASID)
Capabilities: [200] Address Translation Service (ATS)
Capabilities: [300] Page Request Interface (PRI)
Kernel driver in use: i915
Kernel modules: i915
Kernel:
root@plex3:~# uname -ra
Linux plex3 5.15.0-122-generic #132-Ubuntu SMP Thu Aug 29 13:45:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Console Log:
Oct 16, 2024 17:06:36.401 [139694791891768] Info — [Req#15a5/Transcode] Preparing driver imd for GPU Iris Plus Graphics G1 (Ice Lake)
Oct 16, 2024 17:06:44.716 [139694791891768] Error — [Req#1628/Transcode/bjj9p5boi49203qv0az5dw84/823ca9b5-0e8c-48b9-9bb9-729322ac9d28] [hwupload @ 0x7fb75947f380] Failed to upload frame: -22.
Oct 16, 2024 17:06:44.717 [139694785448760] Error — [Req#162c/Transcode/bjj9p5boi49203qv0az5dw84/823ca9b5-0e8c-48b9-9bb9-729322ac9d28] Error while filtering: Invalid argument
Oct 16, 2024 17:06:44.717 [139694795995960] Error — [Req#162f/Transcode/bjj9p5boi49203qv0az5dw84/823ca9b5-0e8c-48b9-9bb9-729322ac9d28] Failed to inject frame into filter network: Invalid argument
Oct 16, 2024 17:06:44.718 [139694789782328] Error — [Req#1632/Transcode/bjj9p5boi49203qv0az5dw84/823ca9b5-0e8c-48b9-9bb9-729322ac9d28] Error while processing the decoded data for stream #0:0
Oct 16, 2024 17:06:49.485 [139694791891768] Warning — [Req#168f] Invalid library metadata ID 5d776b0c9ab544002150686d passed.
What’s the CPU and runtime environment ? Iris XE graphics are normally found in the newer CPUs which require a 6.0 or higher kernel to function correctly.
What’s the distro?
Might it be possible to obtain the DEBUG logs ZIP file (full zip) which captures this happening? Diagnosing from snippets is not possible unless a glaring fault.
Your question about Intel PCI IDs is interesting. According to the Dell spec PDF for my laptop, the Intel Iris Plus Graphics should only be available on i7 models. So, my laptop should actually have Intel UHD Graphics with the i5. I picked this laptop because the i5 Ice Lake QuickSync hardware should support encode/decode for HEVC 10-bit, 4:2:0.
I did some checking in the source code and the different “branches”:
Is your GPU misidentified ? NO.
Is your GPU lacking definition info (which we get from Intel) YES.
– My Nvidia RTX2000 is also lacking.
Should HW subtitles and HEVC encoding work? NO. The HEVC work started before the subtitle work was released (two different development branches in the CM tree)
Should HW subtitles work for H.264? Not guaranteed. Again, two different branches in the CM tree).
– Some work was completed and made it into production release.
– Chris took a snapshot of production release (created his development branch) and started adding HEVC.
– At some point, Chris will merge his work back into the main source tree and we’ll have working HEVC + Subtitles.
This is a tech preview of which HEVC encoding is the primary target
Managing our own expectations and wanting everything at this point is just a touch premature. It’s close… and is what Chris will be finishing when he’s back from Plex’s annual conference.
All I can ask is to please be patient. We’re almost at the point where HEVC and subtitle burning will be in the same build
Understood. Hardware subtitle burn-in is still a work in progress, especially for HEVC.
Can you confirm that you were able to replicate the issue with the file I sent?
Also, is there an option to turn off hardware subtitles? If not, can you tell me what is the most recent version of plex server before hardware subtitles was included? I may need to disable or revert since so many of my files cause issues.
Can you confirm what you mean by “no hardware subtitle burn-in (HEVC preview thread)”. I’m running server 1.41.1.9065 playing the HEVC file you sent with subtitles and it looks like hardware is doing the subtitles. Video encode says (hw) and CPU usage is the same with and without.
I noted in a previous message that H.264 can also fail when doing hardware subtitles. I created a test file and will PM you in a moment.
Turning off subtitles on the player is not an option for me. I want subtitles. Is there an option to turn off hardware subtitles? If not, can you tell me what is the most recent version of plex server before hardware subtitles was included?
Thanks for confirming that you also had the issue with the HEVC file I sent.
HW encode to Plex/Web on Linux (Manifest 4032 error)
Be careful about stating “H.264 w/ hardware subtitles”.
– In the context of public release 8994, this should be working
– In the context of HEVC build 9065, this is not guaranteed and likely to miss for most when encoding to HEVC output.
I’ve asked my team lead but software subtitle burn should be the default.
The design currently actually does the subtitle burn in software WITHOUT disturbing the HW transcoding pipeline.
We actually HW decode → Software burn the subtitle → HW encode the resultant frame → Send to player.
The H.264 file (TEST3) also gives me software transcoding fallback.
There is definitely something neither my Nvidia or AlderLake like in build 9057 (Public) or any of the HEVC builds.
I hate to say it as I’ve nothing hard & concrete yet to point at (I’m not a video engineer) but experience is telling me it’s something with how it was reduced by handbrake.
I am leary of the “webm” file container. It is not as accommodating as MKV.
Is there any way you can retest this using MKV output?
Thanks for confirming. Out of curiosity, do you also get garbled video several seconds later? This consistently happens with both the HEVC and H.264 sample files I sent.
Both files I sent were MKV. If you would like me to resend, or retest, let me know.
Technically, webm is mkv. It’s just that the webm spec does restrict the types of codecs and the number of tracks you can use in a file.
Only if the video stream uses the VP8, VP9, or AV1 codecs it can be considered a valid webm file.
So if yours have H.264 or H.265 video, then some code in-between upload and download is messing up.
Played for 15 minutes. No issues with hardware subs.
Played for 15 minutes. No issues with hardware subs.
This does match with my experience where some of my own files are just fine, but others aren’t- all made using the same handbrake settings. If you have anything else specific you would like me to test, let me know.