Disable periodic I frame insertion for HEVC encoding

Is it possible to disable periodic I-frame insertion for H265 encoding ?

I’m focusing low-latency encoding and decoding. So I want to insert I-frame explicitly when I needed.

And I found NvVideoEncoder::getExtControls seems not working. I want to know which value had set by default. Is there any default encoder setting parameters list?
And I want to know acceptable value range for each controls which has integral argument.

Here is test source code. NvVideoEncoder::getExtControls returns nothing.
Are encoder parameters write only?

#include "NvVideoEncoder.h"
#include "NvLogging.h"
#include <iostream>

void ReadConfig(NvVideoEncoder* enc){
  v4l2_ext_controls req{};
  v4l2_ext_control ctrl{};
  req.count = 1;
  req.controls = &ctrl;
  req.ctrl_class = V4L2_CTRL_CLASS_MPEG;
  auto ret = enc->getExtControls(req);
  std::cout << "NvVideoEncoder::getExtControls: " 
            << ret << ", " << ctrl.value << std::endl;

int main(){
  log_level = LOG_LEVEL_DEBUG;
  auto enc = NvVideoEncoder::createVideoEncoder("enc0");
  enc->setCapturePlaneFormat(V4L2_PIX_FMT_H265, 1920, 1080, 10*1024*1024);
  enc->setOutputPlaneFormat(V4L2_PIX_FMT_YUV420M, 1920, 1080);
  return 0;


Your topic was posted in the wrong category. I am moving this to the Jetson AGX Xavier category for visibility.

There are options in 01_video_encode:

        -ifi <interval>       I-frame Interval [Default = 30]
        -idri <interval>      IDR Interval [Default = 256]

Please set the parameters to large value such as 10000 or 100000.

Hi, DaneLLL

Thank you for information.
I think it would be better written also in API reference or doxygen comment.

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