This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

HDR10+ backwards to HDR10
#1
Hello,
I have a question: If I'm using those settings to encode my HDR10+ video, will the video be able to play as HDR10 on device that support only HDR10 and not HDR10+ and also if it will play on device as HDR10+ that ar certified as HDR10+.

x265 --preset slower --log-level 2 --input - --output-depth 10 --y4m --profile main10  --no-hme --rskip 1 --temporal-mvp --weightp --crf 18.00 --qpfile GENERATED_QP_FILE --limit-refs 1 --signhide --range limited --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,50)" --hdr10 --hdr10-opt --dhdr10-info "E:\Other\Proiect\Windows APP\FastFlix\metadata2.json" --dhdr10-opt --output OUTPUTFILE

[Image: xHQfwGs]

I don't have a device that can play HDR10 or HDR10+, I want o buy one, but I want to know if with those commands will allow me to play play the video on compatible HDR10 device.

Thank you!


Attached Files Thumbnail(s)
   
Reply
#2
In general: HDR10+ is backward-compatible to HDR-10
- I think max cll and max fall should also be specified for better color reproduction, but they should not be strictly necessary (afaik players should use mac cll 0 and max fall 1000 as fallback or use some auto tone magic).
- What might be a problem are the missing level&vbv settings. (especially since open gop is used) This is mainly for player compatibility not for color handling.
Other than that the settings should be fine.

Quote:I don't have a device that can play HDR10 or HDR10+, I want o buy one, but I want to know if with those commands will allow me to play play the video on compatible HDR10 device.
Since I personally don't have any HDR10(+) compatible hardware either I would recommend to create a file but it on a usb stick and if there's an 'offline' shop selling such a monitor/tv ask them if they could playback the file for you. (or create a sample and share it with some other folks who have the necessary hardware to test)

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Offline between (including) 29th of June and 5th of July => RochHarz Festival
Reply
#3
(23.10.2020, 20:08)Selur Wrote: In general: HDR10+ is backward-compatible to HDR-10
- I think max cll and max fall should also be specified for better color reproduction, but they should not be strictly necessary (afaik players should use mac cll 0 and max fall 1000 as fallback or use some auto tone magic).
- What might be a problem are the missing level&vbv settings. (especially since open gop is used) This is mainly for player compatibility not for color handling.
Other than that the settings should be fine.

Quote:I don't have a device that can play HDR10 or HDR10+, I want o buy one, but I want to know if with those commands will allow me to play play the video on compatible HDR10 device.
Since I personally don't have any HDR10(+) compatible hardware either I would recommend to create a file but it on a usb stick and if there's an 'offline' shop selling such a monitor/tv ask them if they could playback the file for you. (or create a sample and share it with some other folks who have the necessary hardware to test)

Cu Selur

Thank you for the replay!
I just wanted to make the encoder setting simple, but good for quality. I just used 
--preset slower --profile main10 --crf 18.00
 and all the settings necessary for HDR10 
--range limited --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,50)" --hdr10 --hdr10-opt --dhdr10-info "E:\Other\Proiect\Windows APP\FastFlix\metadata2.json" --dhdr10-opt --output OUTPUTFILE


I just want to let the encoder select the best level that is required for my video baste on the info from the video and the output of the video, also I read that open-gop is better for quality wish, source: https://streaminglearningcenter.com/arti...-know.html

The source of the video was: audio was passthrough all
General Complete name                            : E:\20201017_145050.mp4 Format                                   : MPEG-4 Format profile                           : Base Media / Version 2 Codec ID                                 : mp42 (isom/mp42) File size                                : 33.5 MiB Duration                                 : 11 s 198 ms Overall bit rate                         : 25.1 Mb/s Encoded date                             : UTC 2020-10-17 11:51:02 Tagged date                              : UTC 2020-10-17 11:51:02 com.android.version                      : 10 Video ID                                       : 1 Format                                   : HEVC Format/Info                              : High Efficiency Video Coding Format profile                           : Main 10@L5@Main HDR format                               : SMPTE ST 2094 App 4, Version 1, HDR10+ Profile B compatible Codec ID                                 : hvc1 Codec ID/Info                            : High Efficiency Video Coding Duration                                 : 11 s 198 ms Bit rate                                 : 24.8 Mb/s Width                                    : 1 920 pixels Height                                   : 1 080 pixels Display aspect ratio                     : 16:9 Frame rate mode                          : Variable Frame rate                               : 30.000 FPS Minimum frame rate                       : 29.980 FPS Maximum frame rate                       : 30.030 FPS Color space                              : YUV Chroma subsampling                       : 4:2:0 Bit depth                                : 10 bits Bits/(Pixel*Frame)                       : 0.399 Stream size                              : 33.2 MiB (99%) Title                                    : VideoHandle Language                                 : English Encoded date                             : UTC 2020-10-17 11:51:02 Tagged date                              : UTC 2020-10-17 11:51:02 Color range                              : Limited Color primaries                          : BT.2020 Transfer characteristics                 : PQ Matrix coefficients                      : BT.2020 non-constant Mastering display color primaries        : Display P3 Mastering display luminance              : min: 0.0050 cd/m2, max: 1000 cd/m2 mdhd_Duration                            : 11198 Codec configuration box                  : hvcC

And after encoded:

General Unique ID                                : 172063719482437538947663698359491187433 (0x817244581B13016418B2B9FEB3A752E9) Complete name                            : E:\Test HDR10+ dhdr10-opt.mkv Format                                   : Matroska Format version                           : Version 4 File size                                : 5.51 MiB Duration                                 : 11 s 198 ms Overall bit rate                         : 4 129 kb/s Encoded date                             : UTC 2020-10-23 10:17:23 Writing application                      : mkvmerge v51.0.0 ('I Wish') 64-bit Writing library                          : libebml v1.4.0 + libmatroska v1.6.2 Encoding Gui                             : Hybrid 2020.10.11.1 Video ID                                       : 1 Format                                   : HEVC Format/Info                              : High Efficiency Video Coding Format profile                           : Main 10@L4@Main HDR format                               : SMPTE ST 2094 App 4, Version 1, HDR10+ Profile B compatible Codec ID                                 : V_MPEGH/ISO/HEVC Duration                                 : 11 s 198 ms Bit rate                                 : 3 864 kb/s Width                                    : 1 920 pixels Height                                   : 1 080 pixels Display aspect ratio                     : 16:9 Frame rate mode                          : Constant Frame rate                               : 30.000 FPS Color space                              : YUV Chroma subsampling                       : 4:2:0 Bit depth                                : 10 bits Bits/(Pixel*Frame)                       : 0.062 Stream size                              : 5.16 MiB (94%) Title                                    : VideoHandle Writing library                          : x265 3.4+26-ga82c6c7a7:[Windows][GCC 10.2.0][64 bit] 10bit Encoding settings                        : cpuid=1111039 / frame-threads=2 / numa-pools=4 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x1080 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=5 / no-allow-non-conformance / repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=25 / keyint=250 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=40 / lookahead-slices=0 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / amp / max-tu-size=32 / tu-inter-depth=3 / tu-intra-depth=3 / limit-tu=4 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=4 / limit-refs=1 / limit-modes / me=3 / subme=4 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=6 / selective-sao=4 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=18.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / ipratio=1.40 / pbratio=1.30 / aq-mode=2 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=0 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,50) / cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / hist-threshold=0.03 / no-opt-cu-delta-qp / no-aq-motion / hdr10 / hdr10-opt / dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / no-scenecut-aware-qpconformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass Language                                 : English Default                                  : Yes Forced                                   : Yes Color range                              : Limited Color primaries                          : BT.2020 Transfer characteristics                 : PQ Matrix coefficients                      : BT.2020 non-constant Mastering display color primaries        : Display P3 Mastering display luminance              : min: 0.0050 cd/m2, max: 1000 cd/m2


And about VbV, I read that is useful to restrict bitrate in CRF Mode, to not go higher than a certain vbv-maxrate https://slhck.info/video/2017/03/01/rate-control.html

I'm trying to understand if is better to let it on unrestricted level so it can be selected automatically and without vbv.

But if vbv helps, how can I calculate to get --vbv-bufsize and --vbv-maxrate for a specific level?
Any suggestion for a better quality and compatibility are always good.
Thanks!
Reply
#4
Quote: and all the settings necessary for HDR10
Like I wrote before: max cll and fall are missing there.

Quote:I just want to let the encoder select the best level that is required for my video
And that is where you go wrong.
VBV, profiles and level are not about the best for the content but for playback compatibility.
You need to select VBV, profiles and level such that:
a. they allow your content
b. are supported by your playback device.
read:
https://en.wikipedia.org/wiki/High_Effic...g#Profiles
https://en.wikipedia.org/wiki/High_Effic...and_levels

Quote: also I read that open-gop is better for quality wish,
Yes, open-gop can increase the compressibility.

Quote:But if vbv helps, how can I calculate to get --vbv-bufsize and --vbv-maxrate for a specific level?
If you select a specific level Hybrid will automatically set the default vbv restrictions for that level.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Offline between (including) 29th of June and 5th of July => RochHarz Festival
Reply
#5
Quote:Like I wrote before: max cll and fall are missing there.
From what I read, I see that if in the source of the video maxcll is not prezent, better then put the wrong value, let it be 0 and use: 
--hdr10
Along with:
--hdr10-opt

It seams to be a better option for the video, benwaggoner said this:
https://forum.doom9.org/showthread.php?p...ost1906154

Quote:Maximum Content Light Level : xxxx cd/m2
Maximum Frame-Average Light Level : xxxx cd/m2
My video don't have those value in the info: So is better to let it be 0.

Quote:And that is where you go wrong.
VBV, profiles and level are not about the best for the content but for playback compatibility.
You need to select VBV, profiles and level such that:
a. they allow your content
b. are supported by your playback device.
read:
https://en.wikipedia.org/wiki/High_Effic...g#Profiles
https://en.wikipedia.org/wiki/High_Effic...and_levels

I readed all of that and also:
https://x265.readthedocs.io/en/master/cl...level-tier

It seams that x265 can determinate the encoding level based on the resolution of the video, framerate.
So the level on my video was:
Quote:Main 10@L5@Main

After encoded on auto-detection it got:
Quote:Main 10@L4@Main

And if I look on the tabel from:
https://en.wikipedia.org/wiki/High_Effic...and_levels
I see that my video with FullHD resolution and 30 framerate it fits on level 4 the same level that has been chosen by the x265.
Or maybe HDR10+ has another standard, a specific level only for HDR10, but I don't have information abaout that...

Quote:If you select a specific level Hybrid will automatically set the default vbv restrictions for that level.
After the first encode and seeing that my video fit in level 4, I can chose level 4 and Hybrid will do the rest, setting vbv for that level.
So my question is, should I use vbv or not? What is the benefit in using it or not?
I see that is a must for the internet content, it helps in streaming.

Thanks!
Reply
#6
Yes, if your source has no max cll/fall values, you can leave them out.

Quote:It seams that x265 can determinate the encoding level based on the resolution of the video, framerate.
Yes, if you to not set level&profile x265 will guess them (hopefully not only on resolution and frame rate).

Quote:So my question is, should I use vbv or not? What is the benefit in using it or not?
You should since it guaranties that the output will be compatible to the selected level&profile.

Quote:Main 10@L4@Main
is okay, if the player you want to use support it (which is to be expected since it's a common level/profile/tier combination-)


Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Offline between (including) 29th of June and 5th of July => RochHarz Festival
Reply
#7
(24.10.2020, 19:14)SlashX Wrote:
Quote:Like I wrote before: max cll and fall are missing there.
From what I read, I see that if in the source of the video maxcll is not prezent, better then put the wrong value, let it be 0 and use: 
--hdr10
Along with:
--hdr10-opt

It seams to be a better option for the video, benwaggoner said this:
https://forum.doom9.org/showthread.php?p...ost1906154

Quote:Maximum Content Light Level : xxxx cd/m2
Maximum Frame-Average Light Level : xxxx cd/m2
My video don't have those value in the info: So is better to let it be 0.

Quote:And that is where you go wrong.
VBV, profiles and level are not about the best for the content but for playback compatibility.
You need to select VBV, profiles and level such that:
a. they allow your content
b. are supported by your playback device.
read:
https://en.wikipedia.org/wiki/High_Effic...g#Profiles
https://en.wikipedia.org/wiki/High_Effic...and_levels

I readed all of that and also:
https://x265.readthedocs.io/en/master/cl...level-tier

It seams that x265 can determinate the encoding level based on the resolution of the video, framerate.
So the level on my video was:
Quote:Main 10@L5@Main

After encoded on auto-detection it got:
Quote:Main 10@L4@Main

And if I look on the tabel from:
https://en.wikipedia.org/wiki/High_Effic...and_levels
I see that my video with FullHD resolution and 30 framerate it fits on level 4 the same level that has been chosen by the x265.
Or maybe HDR10+ has another standard, a specific level only for HDR10, but I don't have information abaout that...

Quote:If you select a specific level Hybrid will automatically set the default vbv restrictions for that level.
After the first encode and seeing that my video fit in level 4, I can chose level 4 and Hybrid will do the rest, setting vbv for that level.
So my question is, should I use vbv or not? What is the benefit in using it or not?
I see that is a must for the internet content, it helps in streaming.

Thanks!

(24.10.2020, 19:23)Selur Wrote: Yes, if your source has no max cll/fall values, you can leave them out.

Quote:It seams that x265 can determinate the encoding level based on the resolution of the video, framerate.
Yes, if you to not set level&profile x265 will guess them (hopefully not only on resolution and frame rate).

Quote:So my question is, should I use vbv or not? What is the benefit in using it or not?
You should since it guaranties that the output will be compatible to the selected level&profile.

Quote:Main 10@L4@Main
is okay, if the player you want to use support it (which is to be expected since it's a common level/profile/tier combination-)


Cu Selur

Thank you for the prompt answer!

The irony is that I don't have a player, it. I plan on getting a TV which has support for HDR10+.
I just want to be prepared, and encode my video with x265 for making the video smaller with at the best quality keeping them compatible.

I have one more question for you. I don't have to much experience with x265.
My normal recorded video are in HEVC 8 bits, I want te encode them for making the video smaller with at the best quality.
What is your suggestion to use x265 8bit or 10 bit?

Thank you for your patience.
Reply
#8
Hight calculation precision means better compression.
So just for compression 12bit calculation precision would even be better, but downside there is that most hardware will not support this.
-> stick with 10bit
8bit does not make any sense to me when using H.265.
(different story with H.264 since there nearly hardware player supports 10bit)

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Offline between (including) 29th of June and 5th of July => RochHarz Festival
Reply
#9
(24.10.2020, 19:45)Selur Wrote: Hight calculation precision means better compression.
So just for compression 12bit calculation precision would even be better, but downside there is that most hardware will not support this.
-> stick with 10bit
8bit does not make any sense to me when using H.265.
(different story with H.264 since there nearly hardware player supports 10bit)

Cu Selur

Thank you for the advice.
And I want to thank you for the hard work you do for Hybrid, it's a great app. Lots of options, I have to do research and see how to use them.

Thanks.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)