Nvv4l2h265enc quant-p-frames

Hi
I am experimenting with the quant-p-frames parameter in nvv4l2h265enc (and also the 264 ditto). I understand that one should set preset-level=0 and ratecontrol-enable=0.
I don’t however seem to see any impact of changes to quant-p-frames, I have tried all different values ranging from 1 to very high but don’t see any difference. Is there any other setting that is needed.?

Hi,
You can run

$ gst-launch-1.0 videotestsrc num-buffers=300 ! nvvidconv ! nvv4l2h264enc ratecontrol-enable=0 quant-i-frames=30 quant-p-frames=30 ! filesink location=a.264

And check the h264 stream through JM decoder. You will see I and P frames are with qp value=30.

It is same in h265 encoding, but don’t know if any 3rdparty tool can be used to show the information like JM decoder.

Hi
Thanks. I tried this, the problem I see is however that the size of the file a.h264 is exactly the same no matter what values I put. Tried the values 1,10,20,30,40,50 and the size is always the same. I would expect that the file size should decease with higher quant values, right ?

Hi,
We don’t observe the issue. Please try

nvidia@nvidia-desktop:~$ head -1 /etc/nv_tegra_release
# R32 (release), REVISION: 4.3, GCID: 21589087, BOARD: t210ref, EABI: aarch64, DATE: Fri Jun 26 04:38:25 UTC 2020
nvidia@nvidia-desktop:~$ gst-launch-1.0 videotestsrc num-buffers=300 ! nvvidconv ! nvv4l2h264enc ratecontrol-enable=0 quant-i-frames=30 quant-p-frames=30 ! filesink location=a.264
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is PREROLLING ...
Redistribute latency...
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
H264: Profile = 66, Level = 0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:00.577106967
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
nvidia@nvidia-desktop:~$ gst-launch-1.0 videotestsrc num-buffers=300 ! nvvidconv ! nvv4l2h264enc ratecontrol-enable=0 quant-i-frames=30 quant-p-frames=40 ! filesink location=b.264
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is PREROLLING ...
Redistribute latency...
NvMMLiteOpen : Block : BlockType = 4
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
H264: Profile = 66, Level = 0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:00:00.572755076
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
nvidia@nvidia-desktop:~$ ll *.264
-rw-rw-r-- 1 nvidia nvidia 831017  九  15 07:02 a.264
-rw-rw-r-- 1 nvidia nvidia 466338  九  15 07:02 b.264

Hi
Tried with the latest release and now it works as it should. Also tried this on the Xavier NX and it is apparent that it does not work with Revision 4.2. In other words it is apparent that one need the latest revision 4.3 or later.

Good that this is sorted out. Thanks for the help.

My problem is that need to have this working with the cameras below and the developers do currently not have the drivers for the latest Tegra release. Hope that will sort out soon.

Hi,
Does Revision 4.2 mean r32.4.2? r32.4.2 is developer preview and eventually camera vendors have to migrate r32.4.3, which is production release.

Yes, that is correct, I understand that a driver package for r32.4.3 will be available early next month