How to find the encoder bitrate minimum 60fps (Xavier NX)

I was just playing with values for nvidia encoder in our setun on Jetson Xavier NX

in this case, I use 60 fps on Nv12 buffer

If I use 600 kb/s bitrate setting, I am about at the limit ~50 Qp (1920x1272 frames)

isKeyFrame=0 AvgQP=39 MinQP=39 MaxQP=39 EncodedBits=104

resulting output is ~600 kb/s (since we are nearing limit some noise can be expected…

I expect that if I lower to say 500 kb/s I should just have a resulting encoding with alot of noise in the size and variation on output, which is expected.
But when I run this case, seems like the encoder defaults to no bitrate set at all and output looks like this:

isKeyFrame=0 AvgQP=12 MinQP=12 MaxQP=15 EncodedBits=106824

resulting output is ~3.2Mb/s

Just wondering if this is the expected result, I do not see a similar thing happening when fps is 30 and there are no errors when setting the encoder values.

    if(videoEnc_->setFrameRate(60, 1))
        throw std::runtime_error("Cannot set fps for encoder");

How can we determine the limit encode will allow? We are ok with noise if it is at the bitrate limit or higher but in this situation seems like we are seeing settings revert to default.

Hi,
The bitrate looks strict for the input resolution/framerate, so it may not work properly.

Please share the command for replicating the issue. We will set up Jetpack 5.1.4 and check. If setting of bitrate is lower than hardware constraint, it should encode all frames with QP 50.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.