VideoHelp Forum
+ Reply to Thread
Results 1 to 6 of 6
Thread
  1. Member
    Join Date
    Feb 2021
    Location
    United States
    Search Comp PM
    Hello all! This is my first post after lurking here for several years. Don't go too hard on me

    I have a question regarding the two x265 parameters in the title. I've been encoding my UHD Bluray collection using ffmpeg/x265 for about 2 years now, and until a few weeks ago, I never included these parameters in my HDR encodes. I was aware that they were enabled from the --uhd-bd parameter, but I assumed they weren't required as I am encoding for personal streaming, and not UHD BD authoring (and I also don't want a GOP length of 24 frames). That changed after reading some posts over on doom9, where several respectable members said that they are used as metadata tags for HDR, and they should be enabled.

    I've read through the x265 docs about 100 times now, but I'm still unsure about the exact purpose of these parameters. Now I am worried that I will need to re-encode roughly 50 Blurays that do not have these parameters included. I have always included all of the 'mandatory' HDR metadata parameters, and my typical 4K HDR command line goes something like this (depending on the mastering display colors, etc.):

    Code:
    ffmpeg -i input.mkv -color_range tv -pixel_fmt yuv420p10le -preset slow -c:v libx265 -x265-params "master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L($($maxLuma),$($minLuma)):chromaloc=2:color_space=bt2020nc:color_primaries=bt2020:transfer=smpte2084:cll=$($maxCLL),$($maxFAL):hdr10-opt=1:repeat-headers=1" output.mkv
    So I guess my question is twofold; what exactly do these parameters signal, and are they truly necessary for HDR? I can (and will) re-encode them at some point to compare, but I figured I would ask first before committing to a 10-20 hour encode. I should also mention that my TVs do trigger HDR during playback; I'm just concerned that the metadata may not be transmitted correctly without --aud and --hrd.

    I have been planning on asking the doom9 folks this very question, but I can't ever seem to get the verification email needed to complete the registration process

    I'm hoping some of you knowledgeable folks can shed some light on this issue for me. I apologize if this isn't the correct category to post this question; this could seemingly go into a few different categories, but I felt 'Video Conversion' was the most applicable. Thanks in advance to those who respond
    Quote Quote  
  2. --aud is not needed for file based formats like mkv and mp4. Mkvtoolnix even removes them during the muxing process if they are present in the ES. They are needed for transports streams (.ts) and mandatory for BluRay m2ts. I know ffmpeg can insert them back in streams that don't have them or remove them with hevc/h264_metadata filter.

    --hrd is hypothetical reference decoder which is vbv related and is mandatory for blu-ray. It inserts buffering and timing information in the stream. Again, this is not needed for mkv or even ts. Your decoder can decode picture just fine without it. Also. when you open video that is encoded with hrd information in mediaInfo you'll see that files on blu-ray have "bitrate" property that shows "variable" value. it can also be "constant" if you use --hal-hrd cbr parameter (in x264 days)

    So don't bother re-encoding your movies. Just think of all that electricity spent so that h265 encoded streams have some additional information that is not even part of the picture. Useless if you ask me.
    Quote Quote  
  3. Member
    Join Date
    Feb 2021
    Location
    United States
    Search Comp PM
    Originally Posted by badyu17 View Post
    So don't bother re-encoding your movies. Just think of all that electricity spent so that h265 encoded streams have some additional information that is not even part of the picture. Useless if you ask me.
    Very relieving as I really did not want to re-encode all of those movies.

    Thank you for your detailed response; this is something that I have not been able to find so far in my searches over the past few days. Considering that I mux all of my titles using the mkv* tools, it sounds like the --aud is worthless to me regardless.

    I just checked all of the titles I did encode with --hrd in mediainfo and I don't even see the metadata you're referencing (although I think I know what you're talking about), so my guess is that it's getting thrown away anyway. For example, I just did 'The Dark Knight" recently:

    HTML Code:
    General 
    Unique ID : 180889976407025718925432178227967847526 (0x881624688AAA422298B2DE00C7C26C66) 
    Complete name : P:\Movies\The Dark Knight (2008) 2160p HDR\The Dark Knight (2008).mkv 
    Format : Matroska 
    Format version : Version 4 
    File size : 19.0 GiB 
    Duration : 2 h 32 min 
    Overall bit rate mode : Variable 
    Overall bit rate : 17.9 Mb/s 
    Movie name : The Dark Knight (2008) 
    Encoded date : UTC 2021-02-02 18:07:49 
    Writing application : [url=https://www.videohelp.com/software/MKVToolNix]mkvmerge[/url] v52.0.0 ('Secret For The Mad') 64-bit 
    Writing library : libebml v1.4.1 + libmatroska v1.6.2 / Lavf58.65.101 
    
    Video 
    ID : 1 
    Format : HEVC 
    Format/Info : High Efficiency Video Coding 
    Format profile : Main 10@L5.1@High 
    HDR format : SMPTE ST 2086, HDR10 compatible 
    Codec ID : V_MPEGH/ISO/HEVC 
    Duration : 2 h 32 min 
    Bit rate : 14.0 Mb/s 
    Width : 3 840 pixels 
    Height : 2 160 pixels 
    Display aspect ratio : 16:9 
    Frame rate mode : Constant 
    Frame rate : 23.976 (24000/1001) FPS 
    Color space : YUV 
    Chroma subsampling : 4:2:0 (Type 2) 
    Bit depth : 10 bits 
    Bits/(Pixel*Frame) : 0.070 
    Stream size : 14.8 GiB (78%) 
    Title : x265 - The Dark Knight 
    Writing library : x265 3.4+31-681c05e83:[Windows][GCC 10.2.0][64 bit] 10bit 
    Encoding settings : cpuid=1111039 / frame-threads=4 / numa-pools=20 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x2160 / interlace=0 / total-frames=0 / level-idc=51 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / repeat-headers / annexb / aud / hrd / info / hash=0 / no-temporal-layers / no-open-gop / min-keyint=12 / keyint=120 / gop-lookahead=0 / bframes=5 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=48 / lookahead-slices=4 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / 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=3 / limit-refs=3 / limit-modes / me=3 / subme=4 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=-3:-3 / no-sao / no-sao-non-deblock / rd=4 / selective-sao=0 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-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=17.0 / qcomp=0.68 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=160000 / vbv-bufsize=160000 / vbv-init=0.9 / min-vbv-fullness=50.0 / max-vbv-fullness=80.0 / crf-max=0.0 / crf-min=0.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=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50) / cll=500,200 / 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 / no-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 : No 
    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: 4000 cd/m2 
    Maximum Content Light Level : 500 cd/m2 
    Maximum Frame-Average Light Level : 200 cd/m2 
    I compared it against the --no-hrd encodes and I don't see any differences. So again, not useful as you stated.

    There seems to be a lot of misinformation out there regarding these parameters (at least relative to what I have been reading these past few days on all forums related to A/V compression) so hopefully, your post will help someone else who might be wondering the same things I was.

    Thanks again The x264/x265 docs can be a bit...overwhelming sometimes, so it's nice to have someone break it down as you did.
    Quote Quote  
  4. You can actually see it in your mediaInfo output. Look on top where it says "Overall bit rate mode : Variable"

    Yeah, as I said I once removed complete HRD information and the stream played fine without it. So, HRD has nothing to do with HDR metadata which is important.
    Quote Quote  
  5. Member
    Join Date
    Feb 2021
    Location
    United States
    Search Comp PM
    Originally Posted by badyu17 View Post
    You can actually see it in your mediaInfo output. Look on top where it says "Overall bit rate mode : Variable"
    Good call! Somehow it slipped past me.

    I think it's been decided that there isn't a noticeable benefit to using these parameters in a Matroska file, but is there any real negative impact to leaving them in? I'm thinking in terms of encoding performance and any (non-trivial) bitrate consumption. If not, I may just leave the parameters in my script, in case I do decide to use a different format down the line.
    Quote Quote  
  6. Yeah, you can leave those in, the overhead is really tiny.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!