Hardware transcoding issue

Hi @ChuckPa, when can we expect a fix? This is clearly reproducible and affects a lot of people.

At this second, I don’t know (it’s 2am monday morning as I answer this :slight_smile: )

I don’t know if the transcoder problems cause this or not.

When Engineering gives me a build with the current fixes (transcoding) in place,
the first I’ll do is tackle the ‘change resolution’ problem.

Fixes in flight right now that I’m waiting to test formally are:

  1. Nvidia (CUDA 12.0)
  2. OpenCL J4000 & J5000 CPUs
  3. Bitrate reduction at all resolutions.

If all these work, resolution changing will be next up to fix.

3 Likes

@ChuckPa

Alright so 1.31.2 both the new beta 6739 and the engineers build 6715 work with the 8bit hevc, but am running into issues now with Dolby Vision content (where the system just refuses to play). I know dolby vision worked in the past and downgrading to 1.31.1.6733 the content will play. For 1.31.2 I am getting the following error in the gui “File is unplayable. Color space is not supported.” and in the logs I am showing

Feb 28, 2023 07:15:19.813 [0x7f323a439b38] ERROR - [Req#1313/Transcode] Streaming Resource: Cannot make a decision because either the file is unplayable or the client provided bad data
Feb 28, 2023 07:15:19.875 [0x7f323b54cb38] WARN - [Req#1324] Could not convert "state" ("error") to the correct type

Here is an example media info from the files.

Media

    Duration 2:41:18
    Bitrate 27477 kbps
    Width 3840
    Height 2160
    Aspect Ratio 1.78
    Video Resolution 4K
    Container MKV
    Video Frame Rate 24p
    Video Profile main 10

Part

    Duration 2:41:18
    File Video.mkv
    Size 31.05 GB
    Container MKV
    Indexes sd
    Video Profile main 10

    Codec HEVC
    Bitrate 16469 kbps
    Language English
    Language Tag en
    D O V I B L Present true
    D O V I Level 6
    D O V I Present true
    D O V I Profile 5
    D O V I R P U Present true
    D O V I Version 1.0
    Bit Depth 10
    Chroma Location left
    Chroma Subsampling 4:2:0
    Coded Height 2160
    Coded Width 3840
    Color Range pc
    Frame Rate 23.976 fps
    Height 2160
    Level 5.0
    Original true
    Profile main 10
    Ref Frames 1
    Width 3840
    Display Title 4K DoVi (HEVC Main 10)
    Extended Display Title 4K DoVi (HEVC Main 10)

Should I open up a new thread specific to this issue, as its a new issue different from the original, or should I keep it going here?

EDIT:
This only occurs when transcoding, the content will play correctly if streamed direct. However testing in the browser is where the error came from, but in the 1.31.1 and previous versions I was able to transcode and stream the data to a browser.

1 Like

you can’t transcode Profile 5. For that reason, PMS says NO
IF you have direct play, the players will allow it

Recommend you stop collecting Profile 5. It’s useless

@ChuckPa This is an explicit change in handling of this file between the versions, hardware and file are the same. I can play the content in a browser (transcoding) with an older version (though not 1.31.1 like I said, or at least not anymore more testing needed) the content would still transcode and play in the browser… unless in previous versions you allowed direct stream by default in the browser. The latests versions fail. I know this as upon startup I would use one of the files failing now to make sure everything was running properly.

1 Like

Something’s not adding up. I will add that I’ve not had opportunity to test what was just released on all my devices.

As I’ve always understood it -

  • If the file can DirectPlay ( meaning the Browser app, the TV app , or the device app) can accept the file AS-IS and play it – then, and only then is Profile 5 allowed. This is because the End Device can construct the ColorSpace context to display correctly.

  • Any transcoding of the Profile 5, whatsoever, will be rejected because in order to transcode DoVI

  • When transcoding a DoVi file,
    – The DoVi is dropped
    – The HDR layer is selected (bt2020)
    – The color space is mapped to bt709 for conversion to H.264.

Therefore, you must have the HDR base layer.

Profile 5 has NO HDR base layer. It’s a “Streaming Only” encoding format (deliberately)

The burden to play Profile 5 video is entirely on the Player app.

Yes, let’s move this to a new thread.

Please create a new thread and then I’ll move these posts to it.

1 Like

@ChuckPa The new release Version 1.31.2.6739 doesn’t mention the resolving the issue with the 8bit hevc transcoding?

New

  • (TV) Add series- and season-level preferences controlling audio and subtitle stream selection (#8036)

Fixes

  • (Playlist) Smart playlists fail for non-leaf types when requested by a non-owner (#13427)
  • (Push) The server could exit unexpectedly if a database error occurred within certain notification-handling code (#14112)
  • (Scanner) TV episodes with certain naming formats involving underscores could fail to be scanned in (#14111)

Look at the dates. It’s over a week old.

I don’t see anything new here.

Screenshot from 2023-02-28 13-08-43

I need to ask what happened

@plex_famverhaegen.be 1.31.1.6733 had the fix in its release notes… 1.31.2.6739 includes those changes but has new fixes in it which are described in the release notes. They were released relatively quickly so you may have missed the first update which included it.

Actually Ive switched versions now so many times I am not %100 certain on whether that was fixed in that release or not, but I believe it did but my mind is somewhat hazy on the details of which versions I tried and validated the test on.

1 Like

Sorry for the confusion folks, :slight_smile:

All the Nvidia fixes and the birate reduction (1080p->1080p and 720p->720p) are in the Plex Pass release. 1.31.2.6739

There are a couple outstanding issues at this point.

The most noted being: “Changing quality mid playback does not recover”

I’m working on this now.

AS A WORKAROUND:

  1. Set Playback quality in Setting → Quality
  2. Now start playback.

I’ll get this turned around with Engineering ASAP

2 Likes

This morning I got a notification that Nvidia driver v530.30.02 was available to download. There doesn’t seem to be anything relating to this in the changelog but it seems to have resolved all my issues. I can now transcode multiple files (including changing quality during playback) using the GPU passthrough to the Docker image from multiple clients including Chrome.

Thanks to all for their assistance, especially @ChuckPa.

Updated specs below if it helps anyone else:

Plex: v 1.31.1.6733
OS: UnRAID v6.11.5
Kernel: 5.19.17
CPU: Intel Xeon CPU E3-1265L V2
GPU: Nvidia P400
GPU Driver: v530.30.02
CUDA Version: 12.0

Hi,

I checked that this version was installed on my server so I ave a few runs.
The following screenshot has been taken minutes after I tried playing some 4K files in web console, the only network trafic was a FLAC playing which I stopped at the red arrow (didn’t had any impact). Same file opened on SMB share plays without an issue on this computer (so it is not a network performance issue)

Look at CPU usage! It was topping at 100% for a while and the playing was already stopped since a while!
6-7 Minutes after the last playing, CPU was back to normal.

I tried also the same failing file on my iPad, same result on CPU.

I am testing the issues on chrome with the new nvidia driver on Xeon CPU. I am testing on PMS 1.31.2.6739.

After changing nvidia driver from 525 to 530 I am seeing new behaviour. Overall 530 is clearly working better, but there are still issues.

For the “Changing quality mid playback does not recover” issue.
On 525 and earlier versions, I was not able to switch quality on anything.
On 530 it works for some files, but not for others.

For “Playback does not start when transcoding” issue. I have settings configured to use 2MBps by default.

On 525. Some files picked by random refuse to start playback. Other files work.
On 530. Testing the same files. Starting playback is working, but unable to change quality.

I’ve that feeling too… :wink:

You need to get some sleep ; that was 1.31.1 not 1.31.2

@ChuckPa
Can you provide feedback to the team and suggest they include the changes of the last 3-4 releases. More important that they include all the internal builds in the beta release info.

Please clarify the request for information.

Before I get into getting release notes and ask for stuff,
may I see DEBUG logs which substantiate the activity ?

CPU activity can be anything from Intro to Credit detection.
(Credit detection is new and has some hiccups)

Please don’t roll DoVi into this thread. AT ALL. It’ll only turn it into soup.

The issue at hand is Nvidia Hardware transcoding vs the CPU graph shown above and determining what is being seen and investigating futher.

One step at a time please.

@ChuckPa
Its not that complicated can we get all the changes of public/beta releases in the release notice.
Release Version 1.31.2.6739 only mentions the fixes done with that build, the previous [beta] release was a 1.31.1.6733. All the fixes between these 2 releases are lost in the release notes.

=======
New

  • (TV) Add series- and season-level preferences controlling audio and subtitle stream selection (#8036)

Fixes

  • (Playlist) Smart playlists fail for non-leaf types when requested by a non-owner (#13427)
  • (Push) The server could exit unexpectedly if a database error occurred within certain notification-handling code (#14112)
  • (Scanner) TV episodes with certain naming formats involving underscores could fail to be scanned in (#14111)

It’s actually quite complicated, and a violation of confidentiality, for me to disclose each discrete change (Fix) which occurred with each build, whether it be Engineer’s build, QA release candidate build, QA fixes, Plex Pass Release Candiate.

There are often “related” (dependent) changes. such changes are “internal use only”

@ChuckPa
Not suggesting that inter build issues are revealed; but it’s clear here that customer reported issues are not included in the release notes. There’s also no “history” if you miss/skip a beta/official release it doesn’t allow you to see what was fixed in between the version you run and the new.
In this case I don’t see any release 1.13.2 besides 1.31.2.6739 that was formally released