I’m in the process of exposing the intra-refresh API to gstreamer’s nvidia encoder element (nvcodec). I have a Merge request in gstreamer (nvh264enc: Support intra refresh (!2409) · Merge requests · GStreamer / gst-plugins-bad · GitLab)
There are a few questions that came up which I couldn’t find an answer in the docs - this impact the implementation in terms of default settings and validations.
- based on the nvidia’s driver header file (sys/nvcodec/nvEncodeAPI.h · master · GStreamer / gst-plugins-bad · GitLab ) the parameter
Will be disabled if NV_ENC_CONFIG::gopLength is not set to NVENC_INFINITE_GOPLENGTH.
But on my testing (unless I’m missing something) this seems to work together,
When putting intra-refresh-period of 15s and gop-size of 30s. I’m seeing the intra-refresh being perform and still getting key-frame every 30 seconds.
Trying to understand if that make sense? Is this legal? or should I block this option entirely and force gop-size to INF in case of intra-refresh enabled.