Jump to content

HDR / Dolby Vision


Go to solution Solved by softworkz,

Recommended Posts

rbjtech
Posted

So I was disappointed to see that despite the latest ffmpeg detection the full Dolby Vision profile details - Emby just displays 'Dolby Vision' in the clients.

However, upon investigating the database directly - I see that emby is infact collecting the FULL DV profile data - and writing it to the ExtendedVideoType / ExtendedVideoSubType fields as per below :-

  • ExtendedVideoType = 100 (HDR10)

ExtendedVideoSubType = 100 (HDR10 and HDR10+) - Presumably as ffmpeg cannot yet determine HDR10+ profiles ?

 

  • ExtendedVideoType = 130 (Dolby Vision)

ExtendedVideoSubType = 1350 (DV5), ExtendedVideoSubType = 1736 (DV7), ExtendedVideoSubType = 1381 (DV8)

 

  • ExtendedVideoType = 120 (HLG)

 

An API query returns the SubType as 'None' but in the database it has a sub-type (of 1381, so should return DV8)..

          "ExtendedVideoType": "DolbyVision",
          "ExtendedVideoSubtype": "None",

 Is this a conscious decision to not include this - and if so, may I ask if this is planned on a future update ?

Thanks,

@softworkzFYI

 

  • Like 1
Posted (edited)
51 minutes ago, rbjtech said:
  • ExtendedVideoType = 100 (HDR10)

ExtendedVideoSubType = 100 (HDR10 and HDR10+) - Presumably as ffmpeg cannot yet determine HDR10+ profiles ?

Yes and no: Yes, we are setting them all to 100 currently. No, ffprobe is in fact able to output HDR10+ side data.

The problem here is that HDR10+ cannot be detected from codec header information. It is required to sample video frames and look for that side data. This doesn't go well together with the regular ffprobe detection procedure, so we'd need to perform a second ffprobe run.

Unfortunately, library scanning performance is kind of a holy cow....that's the current state.

PS ExtendedVideoType.Hdr10Plus exists as well.

 

 

 

Edited by softworkz
  • Thanks 1
Posted
52 minutes ago, rbjtech said:

An API query returns the SubType as 'None' but in the database it has a sub-type (of 1381, so should return DV8)..

          "ExtendedVideoType": "DolbyVision",
          "ExtendedVideoSubtype": "None",

 Is this a conscious decision to not include this - and if so, may I ask if this is planned on a future update ?

There's no intention to hide anything. Which API are you referring to?

rbjtech
Posted
9 minutes ago, softworkz said:

There's no intention to hide anything. Which API are you referring to?

Just a standard 'ItemsService' query.

The 'data' available for the query is there (see below, Subtype=1381), but the API is returning 'None' as the ExtendedVideoSubtype - which doesn't appear to be what's in the db  ?.. 

image.thumb.png.0a05bca19a1f483d534d8e3cba48b47c.png

image.png.651335200cb6807777f3b2f2182b8920.png

 

Posted

Can you try to re-probe again? The value should be 13081.

It could be that in a very early version it was 1381 and the value comes from that time...

rbjtech
Posted (edited)

Same I'm afraid - I did a item Refresh (probe log below), closed Swagger and re-tried.  I did a direct curl as well - same result.

image.png.7bed0cefb9e7242568bc4fe51fc1dfcd.png

 

image.thumb.png.8c6a158450e25fb1c03374dac0cb0422.png

let me just check the db directly ...

Edited by rbjtech
  • Thanks 1
Posted

When you change a letter of the file name, it will create a new (and clean) DB entry...

Posted

Forget about it. There's a bug...

  • Thanks 1
rbjtech
Posted
Just now, softworkz said:

When you change a letter of the file name, it will create a new (and clean) DB entry...

ok - I can try that - 2 secs....

btw - I don't have any VideoSubTypes of 13081 - just those listed in my earlier post ..

 

 

  • Thanks 1
rbjtech
Posted
Just now, softworkz said:

Forget about it. There's a bug...

Ah-ha, ok .. I guess that's good that it's been found .. ;)

  • Thanks 1
  • Solution
Posted
7 minutes ago, rbjtech said:

Ah-ha, ok .. I guess that's good that it's been found .. ;)

Yup, thanks. Already fixed for the next beta!

  • Like 1
  • 2 weeks later...
rbjtech
Posted

@softworkz- Just to advise, this is now working in the latest beta.

Now we just need the ExtendedVideoSubtype included in the main client display... :)

Thanks for update ..

"MediaStreams": [ { "Codec": "hevc", "ColorTransfer": "smpte2084", "ColorPrimaries": "bt2020", "ColorSpace": "bt2020nc", "TimeBase": "1/1000", "Title": "UHD DV8 HDR10 Remux [68.9Mb/s]", "VideoRange": "Dolby Vision", "DisplayTitle": "UHD DV8 HDR10 Remux [68.9Mb/s]", "IsInterlaced": false, "BitRate": 77203433, "BitDepth": 10, "RefFrames": 1, "IsDefault": true, "IsForced": false, "Height": 2160, "Width": 3840, "AverageFrameRate": 23.976025, "RealFrameRate": 23.976025, "Profile": "Main 10", "Type": "Video", "AspectRatio": "16:9", "Index": 0, "IsExternal": false, "IsTextSubtitleStream": false, "SupportsExternalStream": false, "Protocol": "File", "PixelFormat": "yuv420p10le", "Level": 153, "IsAnamorphic": false, "ExtendedVideoType": "DolbyVision", "ExtendedVideoSubtype": "DoviProfile81", "AttachmentSize": 0

  • Like 1
Posted

Thanks for confirming!

39 minutes ago, rbjtech said:

Now we just need the ExtendedVideoSubtype included in the main client display... :)

@Luke

rbjtech
Posted

I'm sure you are fully aware of the profiles - but to get them in one place on this thread (and tested from real API queries) - I've taken the liberty of listing them below.

These are taken directly from the Dolby white-paper PDF - What are Dolby Vision profiles and levels?

Section - 2.1 Dolby Vision bitstream profiles

1. Dolby Vision - Profile 5

Emby Suggested Client Display : Dolby Vision

 

"ExtendedVideoSubtype": "DoviProfile50"
      "MediaStreams": [
        {
          "Codec": "hevc",
          "TimeBase": "1/1000",
          "Title": "UHD DV5 HEVC [19.1Mb/s]",
          "VideoRange": "Dolby Vision",
          "DisplayTitle": "UHD DV5 HEVC [19.1Mb/s]",
          "IsInterlaced": false,
          "BitRate": 20071812,
          "BitDepth": 10,
          "RefFrames": 1,
          "IsDefault": true,
          "IsForced": false,
          "Height": 2160,
          "Width": 3840,
          "AverageFrameRate": 24,
          "RealFrameRate": 24,
          "Profile": "Main 10",
          "Type": "Video",
          "AspectRatio": "16:9",
          "Index": 0,
          "IsExternal": false,
          "IsTextSubtitleStream": false,
          "SupportsExternalStream": false,
          "Protocol": "File",
          "PixelFormat": "yuv420p10le",
          "Level": 150,
          "IsAnamorphic": false,
          "ExtendedVideoType": "DolbyVision",
          "ExtendedVideoSubtype": "DoviProfile50",
          "AttachmentSize": 0
        },

2. Dolby Vision - Profile 7

Suggested Emby Display : Dolby Vision + HDR

"ExtendedVideoSubtype": "DoviProfile76"
          "MediaStreams": [
            {
              "Codec": "hevc",
              "Language": "eng",
              "ColorTransfer": "smpte2084",
              "ColorPrimaries": "bt2020",
              "ColorSpace": "bt2020nc",
              "TimeBase": "1/1000",
              "Title": "UHD DV7 HDR10 Remux [62.1Mb/s]",
              "VideoRange": "Dolby Vision",
              "DisplayTitle": "UHD DV7 HDR10 Remux [62.1Mb/s]",
              "DisplayLanguage": "English",
              "IsInterlaced": false,
              "BitRate": 73013323,
              "BitDepth": 10,
              "RefFrames": 1,
              "IsDefault": false,
              "IsForced": false,
              "Height": 2160,
              "Width": 3840,
              "AverageFrameRate": 23.976025,
              "RealFrameRate": 23.976025,
              "Profile": "Main 10",
              "Type": "Video",
              "AspectRatio": "16:9",
              "Index": 0,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File",
              "PixelFormat": "yuv420p10le",
              "Level": 153,
              "IsAnamorphic": false,
              "ExtendedVideoType": "DolbyVision",
              "ExtendedVideoSubtype": "DoviProfile76",
              "AttachmentSize": 0
            },

 

3. Dolby Vision - Profile 8

Profile 8.1

Suggested Emby Display : Dolby Vision + HDR

"ExtendedVideoSubtype": "DoviProfile81"
"MediaStreams": [
            {
              "Codec": "hevc",
              "ColorTransfer": "smpte2084",
              "ColorPrimaries": "bt2020",
              "ColorSpace": "bt2020nc",
              "TimeBase": "1/1000",
              "Title": "UHD DV8 HDR10 Remux [73.2Mb/s]",
              "VideoRange": "Dolby Vision",
              "DisplayTitle": "UHD DV8 HDR10 Remux [73.2Mb/s]",
              "IsInterlaced": false,
              "BitRate": 79373026,
              "BitDepth": 10,
              "RefFrames": 1,
              "IsDefault": true,
              "IsForced": false,
              "Height": 2160,
              "Width": 3840,
              "AverageFrameRate": 23.976025,
              "RealFrameRate": 23.976025,
              "Profile": "Main 10",
              "Type": "Video",
              "AspectRatio": "16:9",
              "Index": 0,
              "IsExternal": false,
              "IsTextSubtitleStream": false,
              "SupportsExternalStream": false,
              "Protocol": "File",
              "PixelFormat": "yuv420p10le",
              "Level": 153,
              "IsAnamorphic": false,
              "ExtendedVideoType": "DolbyVision",
              "ExtendedVideoSubtype": "DoviProfile81",
              "AttachmentSize": 0
            },

I've never seen Profile 8.2 or 8.4 - but for completeness, they should probably be included.

Profile 8.2

Suggested Emby Display : Dolby Vision + SDR

Profile 8.4

Suggested Emby Display : Dolby Vision + HLG

--

NOTES - I've suggested just using 'HDR' as opposed to HDR10 - as the DV encode may include HDR10+ as well 

NOTES - DV5 should 'maybe' say 'Dolby Vision No HDR' or 'Dolby Vision Only' - to explicitely describe there is no HDR fallback layer.  ?

--

I hope this helps.  Thanks.

 

  • Like 3

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...