View Full Version : Settings for UltraHD 8K HDR10+?
Lucius Snow
8th August 2022, 18:47
Hi all,
I'm trying to prepare the right settings to encode two sources :
- ProRes 4:4:4:4 - 7680x4320 - 12 bit - HDR10+ - SMPTE ST 2084 - Rec2020 (P3-D65 inside) - 25 fps
- ProRes 4:4:4:4 - 7680x4320 - 12 bit - HDR10+ - SMPTE ST 2084 - Rec2020 (P3-D65 inside) - 50 fps
The goal is to provide two HEVC (10 bit - 100 Mbit/s bitrate) file that will be played on a TV by USB.
I'm not sure about several settings. Would you please check them, especially those in red ?
** For 50 fps **
ffmpeg.exe -probesize 100MB -i "E:\source.mov" -an -r 50 -pix_fmt yuv444p12le -f yuv4mpegpipe -strict -1 - | "x265.exe" - --input-depth 12 --output-depth 10 --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --dhdr10-info E:\source.json --master-display "G(8500,39850)B(6550,2300)R(35400,14600)WP(15635,16450)L(10000000,500)" --vbv-bufsize 120000 --bitrate 100000 --vbv-maxrate 120000 --level-idc 61 --bframes 3 --ref 3 --slices 4 --no-b-pyramid --repeat-headers --hdr-opt --aud --hrd --min-keyint 1 --fps 50 --sar 1:1 --keyint 50 --y4m --output "E:\export.hevc"
Thank you.
excellentswordfight
8th August 2022, 19:07
Hi all,
I'm trying to prepare the right settings to encode two sources :
- ProRes 4:4:4:4 - 7680x4320 - 12 bit - HDR10+ - SMPTE ST 2084 - Rec2020 (P3-D65 inside) - 25 fps
- ProRes 4:4:4:4 - 7680x4320 - 12 bit - HDR10+ - SMPTE ST 2084 - Rec2020 (P3-D65 inside) - 50 fps
The goal is to provide two HEVC (10 bit - 100 Mbit/s bitrate) file that will be played on a TV by USB.
I'm not sure about several settings. Would you please check them, especially those in red ?
** For 50 fps **
ffmpeg.exe -probesize 100MB -i "E:\source.mov" -an -r 50 -pix_fmt yuv444p12le -f yuv4mpegpipe -strict -1 - | "x265.exe" - --input-depth 12 --output-depth 10 --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --dhdr10-info E:\source.json --master-display "G(8500,39850)B(6550,2300)R(35400,14600)WP(15635,16450)L(10000000,500)" --vbv-bufsize 120000 --bitrate 100000 --vbv-maxrate 120000 --level-idc 61 --bframes 3 --ref 3 --slices 4 --no-b-pyramid --repeat-headers --hdr-opt --aud --hrd --min-keyint 1 --fps 50 --sar 1:1 --keyint 50 --y4m --output "E:\export.hevc"
Thank you.
The chroma subsampling format of the input must match the output, so if you are going to use Main10 profile (which I assume you do as there are no 4:4:4 10bit profile), you need to change the subsampling before you feed it to x265.
I assume that you are looking for settings important for playback compatibility. When you specifying --level-idc 61 the encoder will automatically set VBV and ref-frames settings that are compliant with that level (you can also set --profile main10 --no-high-tier to make sure that is used as well).
I havnt actually touched slices with x265 so cannot comment on that, still marked as experimental in the docs though so you might wanna keep an eye on that.
Lucius Snow
8th August 2022, 19:29
Thanks, so I summarize:
* ProRes 4:4:4:4 source changed to 4:2:2 HQ
* yuv444p12le switched to yuv420p10le
* --input-depth 12 switched to --input-depth 10
* --vbv-bufsize removed
* --vbv-maxrate removed
* --ref removed
* --slices maybe removed
* --profile main10 added
* --no-high-tier added
Also, I wonder if 100 Mbit/s would be enough for high quality (at 50p).
EDIT: Youtube suggests 120 to 240 Mbps with H264.
FranceBB
8th August 2022, 20:01
Thanks, so I summarize:
* ProRes 4:4:4:4 source changed to 4:2:2 HQ
* yuv444p12le switched to yuv420p10le
* --input-depth 12 switched to --input-depth 10
* --vbv-bufsize removed
* --vbv-maxrate removed
* --ref removed
* --slices maybe removed
* --profile main10 added
* --no-high-tier added
Also, I wonder if 100 Mbit/s would be enough for high quality (at 50p).
EDIT: Youtube suggests 120 to 240 Mbps with H264.
Don't go to 10bit in FFMpeg with the pix_fmt, it will NOT use Dithering, but x265 will!
Always feed x265 with the highest possible bit depth!
Regarding your encode, IF you're encoding at Constant Bitrate and you don't want to have overshooting like for hardware playout ports, then buffersize is bitrate / fps, so 100000 : 50 = 2000 which will achieve a steady constant bitrate, (BUT quality will suffer a lot so I do NOT recommend it) and it's:
ffmpeg.exe -probesize 100MB -i "E:\source.mov" -an -r 50 -pix_fmt yuv420p12le -f yuv4mpegpipe -strict -1 - | "x265.exe" --y4m - --dither --preset medium --level 6.1 --tune fastdecode --no-high-tier --ref 4 --profile main10 --bitrate 100000 --vbv-maxrate 100000 --vbv-bufsize 2000 --deblock -1:-1 --hdr-opt --hrd --aud --min-luma 64 --max-luma 940 --range limited --videoformat component --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,0.0050)" --max-cll 1000,400 --overscan show --no-open-gop --min-keyint 1 --keyint 50 --repeat-headers --rd 3 -o "E:\export.hevc"
in a general case scenario, consumer hardware SHOULD support a bit of overshooting, so this looks like a good candidate for your encode to me:
ffmpeg.exe -probesize 100MB -i "E:\source.mov" -an -r 50 -pix_fmt yuv420p12le -f yuv4mpegpipe -strict -1 - | "x265.exe" --y4m - --dither --preset medium --level 6.1 --tune fastdecode --no-high-tier --ref 4 --profile main10 --bitrate 100000 --vbv-maxrate 120000 --vbv-bufsize 80000 --deblock -1:-1 --hdr-opt --hrd --aud --min-luma 64 --max-luma 940 --range limited --videoformat component --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,0.0050)" --max-cll 1000,400 --overscan show --no-open-gop --min-keyint 1 --keyint 50 --repeat-headers --rd 3 -o "E:\export.hevc"
If that one plays, try removing --tune fastdecode and IF time isn't a problem try to use --preset veryslow
Given that in Japan they've been airing the Olympics in 8K among other things in H.265 60p 10bit, does anyone know which settings they're using for consumer encodes? Is there any standard out there already for 8K TV? I'm genuinely curious given that I couldn't find anything. :|
Lucius Snow
8th August 2022, 20:52
Thank you. I have a few questions because I'm not sure to understand everything:
- yuv420p12le would be fine for a ProRes 4:4:4:4 as input?
- excellentwordsfight suggested that --level 6.1 doesn't require --vbv-bufsize and --vbv-maxrate. Should I keep these arguments anyway?
- if I set --bitrate 100000 --vbv-maxrate 120000 --vbv-bufsize 8000, then it's VBR (average at 100 Mbit/s - maximum at 120 Mbit/s) so we don't care about the "bitrate / fps" rule, right?
- You seem to give arguments for HDR10 only, I suppose I can update them with my own HDR10+ arguments, right?
FranceBB
8th August 2022, 21:11
Thank you. I have a few questions because I'm not sure to understand everything:
- yuv420p12le would be fine for a ProRes 4:4:4:4 as input?
Well, it's gonna be "fine" as it will downscale the chroma to 4:2:0, but it won't tell you which resizing kernel it's going to use, which is why I always shy away from FFMpeg. I'm pretty sure there's a way to specify something meaningful as a resizing kernel to downscale like Sinc (if it's even there) or Lanczos, probably some -vf support it, but I'm an Avisynth guy, so I sort of suck at FFMpeg and I would have personally used an AVS Script.avs instead as a source. But hey, the bright side is that we're on Doom9, so I'm sure there's gonna be someone far better than me with FFMpeg that can provide a way to specify a decent resizing kernel for the chroma downscale. :)
- excellentwordsfight suggested that --level 6.1 doesn't require --vbv-bufsize and --vbv-maxrate. Should I keep these arguments anyway?
Well, --level 6.1 will automatically set buffersize and maxrate, but it will set them in a way that protects your encode from exceeding the maximum possible values of that level. If you specify them manually, however, you can set them to something lower, so, ultimately, it's your choice. ;)
- if I set --bitrate 100000 --vbv-maxrate 120000 --vbv-bufsize 8000, then it's VBR (average at 100 Mbit/s - maximum at 120 Mbit/s) so we don't care about the "bitrate / fps" rule, right?
Correct. That would be VBR so the rule doesn't apply. :)
About that... when I used x265 in VBR by specifying the --bitrate, I found out that doing a dual pass actually helped in some scenarios, so you could actually add --pass 1 -o NUL at the end of the first command line and then have a totally identical command line but with the real output --pass 2 -o "output.hevc"
That being said, I assume you've got a Professional Masterfile and you're the official distributor of the 8K file for end users, so unless you have a very specific reason to set the --bitrate directly (like streaming or some optical media constraints etc) and you will actually deliver a file to the end users, you *could* try using --crf instead to set the same quality everywhere and just add the vbv to prevent some dramatic overshooting. Decoders SHOULD be able to cope and you would be better off having the same quality across every scene and saving time by encoding with a single pass.
- You seem to give arguments for HDR10 only, I suppose I can update them with my own HDR10+ arguments, right?
Yeah, I'm an idiot. I'm not in the office, I'm at home and I replied while I was cooking my chicken in the oven and between going back and forth I mistook it for HDR10 instead of HDR10+ :P
My fault ehehehehe go ahead with the HDR10+ specific arguments ;)
Lucius Snow
8th August 2022, 22:53
Thanks a lot, FranceBB. That's very clear now. I'll make the encoding as soon as the color grading is finished :)
Lucius Snow
9th August 2022, 10:49
By the way, there's a detail I'm thinking about now. To make a HDR10+ file which is compatible with HDR10, should I keep the --max-cll argument? Since the JSON should be ignored by HDR10 televisions...
Thanks.
quietvoid
9th August 2022, 13:31
The HDR10 signaling should still be present, even when HDR10+ is present in the file.
So that means both `--master-display` and `--max-cll` should be used.
Lucius Snow
9th August 2022, 14:09
That's good to know.
I've noticed that the JSON file exported as Profile B from DaVinci Resolve has tone mapping data for 400 nits only ("TargetedSystemDisplayMaximumLuminance" value). We'll make our color grading on a 1,000 nits monitoring display tomorrow using HDR10+. And the H265 file will be played on a 4,000 nits TV (HDR10+ compatible, not Dolby Vision). Do you think the HDR10 metadatas + the HDR10+ JSON would map correctly the TV to 1,000 nits only?
quietvoid
9th August 2022, 14:45
I'm not sure. I think the metadata usually specifies a curve for a low brightness target, and the display's internal processing can adjust it according to its own peak brightness.
benwaggoner
9th August 2022, 17:52
That's good to know.
I've noticed that the JSON file exported as Profile B from DaVinci Resolve has tone mapping data for 400 nits only ("TargetedSystemDisplayMaximumLuminance" value). We'll make our color grading on a 1,000 nits monitoring display tomorrow using HDR10+. And the H265 file will be played on a 4,000 nits TV (HDR10+ compatible, not Dolby Vision). Do you think the HDR10 metadatas + the HDR10+ JSON would map correctly the TV to 1,000 nits only?
HDR10+ doesn't really have a specified tone mapping algorithm. In a dark environment using Filmmaker Mode, any TV than can do more than 400 nits would still only get 400 nits with a 400 nit source. Generally HDR10+ doesn't do much when the content is a subset of the device's capability. Its real benefits are when the content exceeds the display's capabilities, using the dynamic metadata to better map down from the source to panel.
However, if using a different mode, or using FMM in a brighter environment on a TV with an ambient light sensor, you can absolutely get the 400 nit peaks displayed at 1000+ nits, as the TV tries to preserve visibility and creative intent in different lighting conditions. Specifics vary a lot between manufacturers, and a fair amount between models and model years.
SeeMoreDigital
9th August 2022, 22:30
The goal is to provide two HEVC (10 bit - 100 Mbit/s bitrate) file that will be played on a TV by USB....Out of interest. What make and model of 8K TV are you using?
Lucius Snow
10th August 2022, 08:50
Samsung 75QN900B
benwaggoner
10th August 2022, 19:45
A couple of notes:
If you want to convert from 12-bit to 10-bit inside x265, you should add --dither to improve the quality of that conversion somewhat.
If you want clearer control over scaling and color space conversions, scaling with zscale is more precise and has better options. I'm a big fan of Spline36 as an algorithm that handles >2x scaling well, preserves detail better than bicubic, and introduces less ringing than Lanczos.
https://ffmpeg.org/ffmpeg-filters.html#zscale
Lucius Snow
10th August 2022, 22:09
Thanks. I've finally ouput a 10-bit source. The encoding looks great.
By the way, Samsung internal processor can't manage video vitrate above 100 Mbit/s for HEVC.
Lucius Snow
11th August 2022, 04:39
I've sucessfully encoded my files in UltraHD 4K @ 25 fps, UltraHD 4K @ 50 fps, UltraHD 8K @ 25 fps... but not UltraHD 8K @ 50 fps, The video becomes jerky at the middle (and comes back smoothly after a few seconds). Here are the x265 logs:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'W:\PPEE_HDR_8K_UHD.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
creation_time : 2022-08-10T18:06:53.000000Z
encoder : Blackmagic Design DaVinci Resolve Studio
Duration: 00:01:51.52, start: 0.000000, bitrate: 5021609 kb/s
Stream #0:0: Video: prores (HQ) (apch / 0x68637061), yuv422p10le(tv, bt2020nc/bt2020/smpte2084, progressive), 7680x4320, 5020068 kb/s, SAR 1:1 DAR 16:9, 50 fps, 50 tbr, 12800 tbn (default)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : VideoHandler
vendor_id : appl
encoder : Apple ProRes 422 HQ
timecode : 00:00:00:00
Stream #0:1: Audio: pcm_s16le (lpcm / 0x6D63706C), 48000 Hz, stereo, s16, 1536 kb/s (default)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : TimeCodeHandler
timecode : 00:00:00:00
Stream mapping:
Stream #0:0 -> #0:0 (prores (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[yuv4mpegpipe @ 00000206ea1e4b40] Warning: generating non standard YUV stream. Mjpegtools will not work.
Output #0, yuv4mpegpipe, to 'pipe:':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf59.4.101
y4m [info]: 7680x4320 fps 50/1 i420p10 sar 1:1 unknown frame count
Stream #0:0: Video: wrapped_avframe, yuv420p10le(tv, bt2020nc/bt2020/smpte2084, progressive), 7680x4320 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 50 fps, 50 tbn (default)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : VideoHandler
vendor_id : appl
timecode : 00:00:00:00
encoder : Lavc59.4.100 wrapped_avframe
raw [info]: output file: W:\PPEE_HDR_8K_UHD.hevc
x265 [info]: HEVC encoder version 3.5+11-c8905a745
x265 [info]: build info [Windows][MSVC 1900][64 bit] 10bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [info]: Main 10 profile, Level-6.1 (Main tier)
x265 [info]: Thread pool 0 using 64 threads on numa nodes 0
x265 [info]: Slices : 1
x265 [info]: frame threads / pool features : 6 / wpp(68 rows)
x265 [warning]: NAL HRD parameters require VBV parameters, ignored
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 3 inter / 3 intra
x265 [info]: ME / range / subpel / merge : star / 57 / 4 / 5
x265 [info]: Keyframe min / max / scenecut / bias : 1 / 50 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt : 40 / 8 / 2
x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 1
x265 [info]: References / ref-limit cu / depth : 5 / off / off
x265 [info]: AQ: mode / str / qg-size / cu-tree : 2 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress : ABR-100000 kbps / 0.60
x265 [info]: tools: rect amp rd=3 psy-rd=2.00 rdoq=2 psy-rdoq=1.00 rskip mode=1
x265 [info]: tools: signhide tmvp b-intra strong-intra-smoothing
x265 [info]: tools: deblock(tC=-1:B=-1) sao dhdr10-info
frame= 5576 fps=0.5 q=-0.0 Lsize=541987233kB time=00:01:51.52 bitrate=39813122.4kbits/s speed=0.00908x
video:2396kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 22620992.000000%
x265 [info]: frame I: 129, Avg QP:13.49 kb/s: 408652.56
x265 [info]: frame P: 759, Avg QP:14.46 kb/s: 244175.75
x265 [info]: frame B: 4688, Avg QP:18.89 kb/s: 64946.57
x265 [info]: Weighted P-Frames: Y:3.4% UV:2.8%
x265 [info]: Weighted B-Frames: Y:2.1% UV:1.1%
x265 [info]: consecutive B-frames: 15.7% 0.9% 1.6% 7.8% 2.9% 10.7% 8.7% 31.1% 20.7%
encoded 5576 frames in 12307.98s (0.45 fps), 97294.67 kb/s, Avg QP:18.16
I can't find the guilty argument among these:
--y4m - --dither --preset medium --level 6.1 --preset veryslow --no-high-tier --bitrate 100000 --deblock -1:-1 --hdr-opt --hrd --aud --overscan show --no-open-gop --min-keyint 1 --keyint 50 --repeat-headers --rd 3
--hrd? Or the lack of --vbv-maxrate and--vbv-bufsize?
EDIT: Launching a new encode with --vbv-maxrate 120000 --vbv-bufsize 8000 added. Let's see...
EDIT2: Yes, that fixed it!
Blue_MiSfit
11th August 2022, 05:59
A couple of notes:
If you want clearer control over scaling and color space conversions, scaling with zscale is more precise and has better options. I'm a big fan of Spline36 as an algorithm that handles >2x scaling well, preserves detail better than bicubic, and introduces less ringing than Lanczos.
https://ffmpeg.org/ffmpeg-filters.html#zscale
^^ QFT. I highly recommend zscale. Once you get it properly configured (which, to be fair, can be a little counter intuitive given the ffmpeg filter graph syntax) it's the same thing as VapourSynth (it's the same library under the hood).
I trust it (and it's been studio approved) for challenging HDR conversions like full range 16 bit RGB to narrow range 4:4:4 YCbCr 12 bit for ProRes mastering. It also does a great job of converting to narrow range 4:2:0 10 bit YCbCr for distribution encoding.
This includes all the bells and whistles like full range to narrow range, linear light downscaling, custom kernels, etc.
The big benefit to doing this in ffmpeg is that you don't need to index anything ahead of time :)
kolak
12th August 2022, 20:07
I've sucessfully encoded my files in UltraHD 4K @ 25 fps, UltraHD 4K @ 50 fps, UltraHD 8K @ 25 fps... but not UltraHD 8K @ 50 fps, The video becomes jerky at the middle (and comes back smoothly after a few seconds). Here are the x265 logs:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'W:\PPEE_HDR_8K_UHD.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
creation_time : 2022-08-10T18:06:53.000000Z
encoder : Blackmagic Design DaVinci Resolve Studio
Duration: 00:01:51.52, start: 0.000000, bitrate: 5021609 kb/s
Stream #0:0: Video: prores (HQ) (apch / 0x68637061), yuv422p10le(tv, bt2020nc/bt2020/smpte2084, progressive), 7680x4320, 5020068 kb/s, SAR 1:1 DAR 16:9, 50 fps, 50 tbr, 12800 tbn (default)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : VideoHandler
vendor_id : appl
encoder : Apple ProRes 422 HQ
timecode : 00:00:00:00
Stream #0:1: Audio: pcm_s16le (lpcm / 0x6D63706C), 48000 Hz, stereo, s16, 1536 kb/s (default)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : TimeCodeHandler
timecode : 00:00:00:00
Stream mapping:
Stream #0:0 -> #0:0 (prores (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[yuv4mpegpipe @ 00000206ea1e4b40] Warning: generating non standard YUV stream. Mjpegtools will not work.
Output #0, yuv4mpegpipe, to 'pipe:':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf59.4.101
y4m [info]: 7680x4320 fps 50/1 i420p10 sar 1:1 unknown frame count
Stream #0:0: Video: wrapped_avframe, yuv420p10le(tv, bt2020nc/bt2020/smpte2084, progressive), 7680x4320 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 50 fps, 50 tbn (default)
Metadata:
creation_time : 2022-08-10T18:06:53.000000Z
handler_name : VideoHandler
vendor_id : appl
timecode : 00:00:00:00
encoder : Lavc59.4.100 wrapped_avframe
raw [info]: output file: W:\PPEE_HDR_8K_UHD.hevc
x265 [info]: HEVC encoder version 3.5+11-c8905a745
x265 [info]: build info [Windows][MSVC 1900][64 bit] 10bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [info]: Main 10 profile, Level-6.1 (Main tier)
x265 [info]: Thread pool 0 using 64 threads on numa nodes 0
x265 [info]: Slices : 1
x265 [info]: frame threads / pool features : 6 / wpp(68 rows)
x265 [warning]: NAL HRD parameters require VBV parameters, ignored
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 3 inter / 3 intra
x265 [info]: ME / range / subpel / merge : star / 57 / 4 / 5
x265 [info]: Keyframe min / max / scenecut / bias : 1 / 50 / 40 / 5.00
x265 [info]: Lookahead / bframes / badapt : 40 / 8 / 2
x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 1
x265 [info]: References / ref-limit cu / depth : 5 / off / off
x265 [info]: AQ: mode / str / qg-size / cu-tree : 2 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress : ABR-100000 kbps / 0.60
x265 [info]: tools: rect amp rd=3 psy-rd=2.00 rdoq=2 psy-rdoq=1.00 rskip mode=1
x265 [info]: tools: signhide tmvp b-intra strong-intra-smoothing
x265 [info]: tools: deblock(tC=-1:B=-1) sao dhdr10-info
frame= 5576 fps=0.5 q=-0.0 Lsize=541987233kB time=00:01:51.52 bitrate=39813122.4kbits/s speed=0.00908x
video:2396kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 22620992.000000%
x265 [info]: frame I: 129, Avg QP:13.49 kb/s: 408652.56
x265 [info]: frame P: 759, Avg QP:14.46 kb/s: 244175.75
x265 [info]: frame B: 4688, Avg QP:18.89 kb/s: 64946.57
x265 [info]: Weighted P-Frames: Y:3.4% UV:2.8%
x265 [info]: Weighted B-Frames: Y:2.1% UV:1.1%
x265 [info]: consecutive B-frames: 15.7% 0.9% 1.6% 7.8% 2.9% 10.7% 8.7% 31.1% 20.7%
encoded 5576 frames in 12307.98s (0.45 fps), 97294.67 kb/s, Avg QP:18.16
I can't find the guilty argument among these:
--hrd? Or the lack of --vbv-maxrate and--vbv-bufsize?
EDIT: Launching a new encode with --vbv-maxrate 120000 --vbv-bufsize 8000 added. Let's see...
EDIT2: Yes, that fixed it!
Try reducing number of B frames (to eg. 3), maybe reference frames as well and keep GOP size at realistic 1-2 sec value. You may be hitting decoder capabilities if you start having jerky video. I had same story with pre-release of UHD Samsung TV.
Don't let x265 to use extreme default values.
You definitely need to control bitrate as every hardware decoder has its limits. Try lower values and if good then keep going higher to find TV limitations.
rwill
12th August 2022, 21:56
EDIT: Launching a new encode with --vbv-maxrate 120000 --vbv-bufsize 8000 added. Let's see...
EDIT2: Yes, that fixed it!
Did you really specify '--vbv-bufsize 8000' ? Really ? At 120Mbps rate ?
Oh by the way:
https://downloadcenter.samsung.com/content/UM/202203/20220303092001587/OSNATSCB-3.2.0_EM_Oscar_Pontus_Nike_Kant-SU2e_USA_ENG_220216.0.pdf
Page 153
HEVC (H.265 - Main, Main10), max 4096x2160, fps 4096x2160@60, 3840x2160@120, max Bitrate 80Mbps.
You are welcome.
PS:
By the way its always recommended to look into user manuals for the supported specs of some decoding device. Just so you know where to look in the future.
excellentswordfight
12th August 2022, 22:16
Did you really specify '--vbv-bufsize 8000' ? Really ? At 120Mbps rate ?
Oh by the way:
https://downloadcenter.samsung.com/content/UM/202203/20220303092001587/OSNATSCB-3.2.0_EM_Oscar_Pontus_Nike_Kant-SU2e_USA_ENG_220216.0.pdf
Page 153
HEVC (H.265 - Main, Main10), max 4096x2160, fps 4096x2160@60, 3840x2160@120, max Bitrate 80Mbps.
You are welcome.
PS:
By the way its always recommended to look into user manuals for the supported specs of some decoding device. Just so you know where to look in the future.
Are you sure that you are looking at the right model?
In the table "Supported video codecs (QN8**B Series or higher)"
HEVC (H.265 - Main, Main10), 7680 x 4320@60, 3840 x 2160@120, 100Mbps
@Lucius Snow, you probably wanna set both vbv-maxrate and bufsize slightly bellow 100Mbps and adjust avrage bitrate accordingly.
rwill
12th August 2022, 22:23
Are you sure that you are looking at the right model?
Ah sorry I looked at the wrong table.
I just thought that when I am on the Samsung page of the specific TV and click on 'user manual' that I get the manual for that model and not for all of them. I scrolled around and picked the first table. I am no Samsung TV expert too so I know nothing about TV models.
Lucius Snow
13th August 2022, 14:10
Yes, I tried these higher bitrates because this 100 Mbit/s limit seemed quite low for 8K 50p. Guess what: I was right. The Samsung internal processor inside the 75QN900B supports my bitrates. Smooth playback!
benwaggoner
15th August 2022, 21:33
Yes, I tried these higher bitrates because this 100 Mbit/s limit seemed quite low for 8K 50p. Guess what: I was right. The Samsung internal processor inside the 75QN900B supports my bitrates. Smooth playback!
What bitrate were you able to get to?
I've had 100 Mbps files play without issue on the 900B.
Lucius Snow
16th August 2022, 15:01
What bitrate were you able to get to?
I've had 100 Mbps files play without issue on the 900B.
According to Mediainfo:
Bit rate : 93.0 Mb/s
Maximum bit rate : 155 Mb/s
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.