Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

H.264 4:4:4 check features,.. #450

Closed
Selur opened this issue Jan 15, 2023 · 4 comments
Closed

H.264 4:4:4 check features,.. #450

Selur opened this issue Jan 15, 2023 · 4 comments

Comments

@Selur
Copy link

Selur commented Jan 15, 2023

using '--check-features' I get:

NVEncC (x64) 7.08 (r2398) by rigaya, Dec 29 2022 09:40:33 (VC 1929/Win)
  [NVENC API v12.0, CUDA 10.1]
 reader: raw, y4m, avi, avs, vpy, avsw, avhw [H.264/AVC, H.265/HEVC, MPEG2, VP8, VP9, VC-1, MPEG1, MPEG4, AV1]

Environment Info
OS : Windows 11 x64 (22621) [UTF-8]
CPU: AMD Ryzen 9 7950X 16-Core Processor [5.52GHz] (16C/32T)
RAM: Used 8193 MB, Total 64632 MB

#0: NVIDIA GeForce RTX 4080 (9728 cores, 2505 MHz)[PCIe4x16][528.02]
NVEnc features
Codec: H.264/AVC
Encoder Engines           2
Max Bframes               4
B Ref Mode                3 (each + only middle)
RC Modes                  63 (CQP, CBR, CBRHQ, VBR, VBRHQ)
Field Encoding            0 (no)
MonoChrome                no
FMO                       no
Quater-Pel MV             yes
B Direct Mode             yes
CABAC                     yes
Adaptive Transform        yes
Max Temporal Layers       4
Hierarchial P Frames      yes
Hierarchial B Frames      yes
Max Level                 62 (6.2)
Min Level                 10 (1)
4:4:4                     yes
Min Width                 145
Max Width                 4096
Min Height                49
Max Height                4096
Multiple Refs             yes
Max LTR Frames            8
Dynamic Resolution Change yes
Dynamic Bitrate Change    yes
Forced constant QP        yes
Dynamic RC Mode Change    no
Subframe Readback         yes
Constrained Encoding      yes
Intra Refresh             yes
Custom VBV Bufsize        yes
Dynamic Slice Mode        yes
Ref Pic Invalidiation     yes
PreProcess                no
Async Encoding            yes
Max MBs                   65536
Lossless                  yes
SAO                       no
Me Only Mode              1 (I,P frames)
Lookahead                 yes
AQ (temporal)             yes
Weighted Prediction       yes
10bit depth               no

but when encoding using:
[code]ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "G:\tos_dcp_test_04\tos_video.mxf" -map 0:0 -an -sn -vf scale=in_range=pc:out_range=pc -sws_flags accurate_rnd+full_chroma_inp -pix_fmt yuv444p -vsync 0 -f yuv4mpegpipe - | NVEncC --y4m -i - --fps 24.000 --codec h264 --profile high444 --level 5.2 --sar 1:1 --lookahead 16 --multipass "2pass-full" --vbr 80529 --max-bitrate 240000 --gop-len 0 --ref 3 --bframes 3 --direct auto --bref-mode disabled --no-b-adapt --mv-precision "Q-pel" --cabac --deblock --preset quality --colorrange full --colormatrix bt2020c --psnr --log-level debug --output "J:\tmp\tos_video_2023-01-15@08_25_25_5010_01.264"[/code]
I get:

NVEncC    7.08 (x64)
OS        Windows 11 x64 (22621) [UTF-8]
CPU Info  AMD Ryzen 9 7950X 16-Core Processor [5.52GHz] (16C/32T)
Locale    C
InitCuda: device #-1.

Checking Environment Info...
NVEncC (x64) 7.08 (r2398) by rigaya, Dec 29 2022 09:40:33 (VC 1929/Win)
OS Version     Windows 11 x64 (22621)
CPU            AMD Ryzen 9 7950X 16-Core Processor [5.52GHz] (16C/32T)
cuInit: Success.
cuvidInit: Success.
InitCuda: Success.
cuDeviceGetCount: Success, 1.
gpuinfo: checking for device #0.
gpuinfo:   cuDeviceGet(0): success
gpuinfo:   cuDeviceGetName(0): NVIDIA GeForce RTX 4080
gpuinfo:   cudaDeviceGetAttribute: CUDA 8.9
gpuinfo:   PCIBusId: 0000:01:00.0
gpuinfo:   Got GPU Info from NVML.
gpuinfo:   NV Driver version: 528020.
gpuinfo:   CUDA Driver version: 12000.
gpuinfo: using cuda schedule mode: auto.
gpuinfo: cuCtxCreate: Success.
gpuinfo: cuCtxPopCurrent: Success.
gpuinfo: cuvidCtxLockCreate: Success.
nvenc : Loaded nvEncodeAPI64.dll.
nvenc : nvEncodeAPICreateInstance(APIVer=0x7002000c): Success.
nvenc : Opened Encode Session (API ver 12.0)
nvenc : NvEncOpenEncodeSessionEx(device_type=NV_ENC_DEVICE_TYPE_CUDA): Success.
nvenc : m_pEncodeAPI->nvEncGetEncodeGUIDCount: 3.
nvenc : Found codec H.264/AVC.
nvenc : Found codec H.265/HEVC.
nvenc : Found codec AV1.
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 6.
nvenc : Found H.264/AVC baseline profile.
nvenc : Found H.264/AVC main profile.
nvenc : Found H.264/AVC high profile.
nvenc : Found H.264/AVC Unknown profile.
nvenc : Found H.264/AVC high444 profile.
nvenc : Found H.264/AVC auto profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 17.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 9.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yuv444
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 4.
nvenc : Found H.265/HEVC Unknown profile.
nvenc : Found H.265/HEVC main profile.
nvenc : Found H.265/HEVC main10 profile.
nvenc : Found H.265/HEVC main444 profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 17.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 11.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yuv444
nvenc : yv12(10bit)
nvenc : yuv444(10bit)
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : m_pEncodeAPI->nvEncGetEncodeProfileGUIDCount: 3.
nvenc : Found AV1 Unknown profile.
nvenc : Found AV1 main profile.
nvenc : Found AV1 high profile.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetCount: 7.
nvenc : m_pEncodeAPI->nvEncGetEncodePresetGUIDs: Success.
nvenc : m_pEncodeAPI->nvEncGetInputFormatCount: 9.
nvenc : Found input fmt:
nvenc : nv12
nvenc : yv12
nvenc : Invalid
nvenc : yv12(10bit)
nvenc : rgb32
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
nvenc : Invalid
gpuinfo:   createDeviceFeatureList
nvenc : nvEncDestroyEncoder...
nvenc : nvEncDestroyEncoder: success.
InitDeviceList: Success.
gpuinfo: Closing device #0: NVIDIA GeForce RTX 4080...
gpuinfo: Closed cuvid Ctx Lock...
gpuinfo: Closed cuvid Ctx Lock.
gpuinfo: Closed CUDA Context...
gpuinfo: Closed CUDA Context.
gpuinfo: Closed device #0: NVIDIA GeForce RTX 4080.
GPU #-1790619776 (yuv444) does not support Unknown erro occurred during checking GPU.
Closed EncodeStatus.
Closing perf monitor...
Closing logger...

GPU #-1790619776 (yuv444) does not support Unknown erro occurred during checking GPU
Am I missing something in the settings? Is '--check-features' wrong and '4:4:4' is wrong?

@rigaya
Copy link
Owner

rigaya commented Jan 15, 2023

I'm sorry the error message is misleading and not correct.

I think the problem we have here is actually caused by --psnr.

It requires hw decode support, but H.264 4:4:4 hw decode is not supported (even though encode is supported). It will work fine without --psnr.

I'll improve the error message in next release, will show error message as below.

GPU #0 (NVIDIA GeForce RTX 4080) does not support H.264/AVC yuv444 decoding required for ssim/psnr/vmaf calculation.

@Selur
Copy link
Author

Selur commented Jan 15, 2023

Without psnr it works.
Thanks, for clearing that up. :)

@rigaya
Copy link
Owner

rigaya commented Jan 16, 2023

Thank you for sharing the error with me.

NVEnc 7.09 improves error message for this case.

@rigaya
Copy link
Owner

rigaya commented Jan 30, 2023

I'll close this issue now as the error message has been improved, and now it's easier to find out the reason of the error.

@rigaya rigaya closed this as completed Jan 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants