| Codec / encoder | H.265 / HEVC · NVENC hevc_nvenc p7, 2-pass full-res |
|---|
| Command | ffmpeg -hide_banner -loglevel error -y -i SRC.y4m -frames:v 60 -pix_fmt p010le -c:v hevc_nvenc -preset p7 -tune hq -multipass fullres -g 30 -keyint_min 30 -forced-idr 1 -no-scenecut 1 -bf 3 -b_ref_mode middle -rc-lookahead 32 -spatial-aq 1 -temporal-aq 1 -profile:v main10 -tier main -level <level> -rc cbr -b:v <target> -maxrate <target> -bufsize <vbv> -f hevc OUT |
|---|
| Points | target T = 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 180, 200, 220, 240, 280, 320, 360, 400, 440, 480 Mbit/s (step 10 up to 160, 20 up to 240, 40 up to 480; top = the codec's 8K60 limit at level 6.1, High tier); calibrated to 96–100 % of T; the ladder stops when a target is unreachable for the content |
|---|
| VBV | min(level MaxCPB, 1 s × target) |
|---|
| Profile | Main (8-bit) / Main 10 (10-bit), main tier |
|---|
| Level / buffer | H.265 Annex A Tables A.8/A.9; within a level main tier first, high tier (suffix H, general_tier_flag=1) when main does not cover the bitrate; bitrate and CPB × CpbNalFactor 1100; general_level_idc in VPS/SPS. Level = the lowest one covering size, sample rate and the actual bitrate; buffer in the name = that level's MaxCPB. |
|---|
| Structure | 60 frames = 2 GOP × 30 (keyframes at frames 0 and 30, closed GOP), 3 B-frames with pyramid, 4:2:0, bit depth as in the source. Container: .265 (Annex B). |
|---|
| Verification | reference decoder HM TAppDecoder → YUV md5, cross-checked with the ffmpeg decoder md5, 60 frames, keyframes at 0 and 30, profile/level read back with ffprobe, PSNR/SSIM against the source. |
|---|