I’m using a Jetson Nano Developer Kit with Jetpack 4.5.1 (on the latest image from SDK-Manager),
I want to create a GStreamer pipeline that will be able to change quantization settings mid-stream,
gst-inspect show that nvv4l2h264enc cannot change the qp/b/i frame settings when pipeline is playing, only on null or ready state, however qp-range seems to be available to me while playing.
I’ve created a simply python POC that will launch the pipelines and once per minute - change the qp-range, I’m getting no error, and the script seems to be running fine, but there are no discernible changes in the video.
In order to ensure this I’ve tried starting the pipeline with different qp-range values, but there doesn’t seem to be any difference at all, am I missing something?
videotestsrc is-live=true ! video/x-raw,width=1280,height=720,framerate=30/1 ! timeoverlay ! nvvidconv ! video/x-raw(memory:NVMM) ! nvv4l2h264enc ! video/x-h264,stream-format=byte-stream ! h264parse ! rtph264pay config-interval=1 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! udpsink host=127.255.255.255 port=5000 sync=false async=false udpsrc port=5000 caps=application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! rtph264depay ! decodebin ! nvvidconv ! video/x-raw(memory:NVMM) ! nvv4l2h264enc name=nvenc preset-level=0 iframeinterval=1 control-rate=0 insert-sps-pps=1 qp-range=50,51:10,35:10,35 ! video/x-h264,stream-format=byte-stream ! nvv4l2decoder ! nvvidconv ! xvimagesink sync=false async=false
I’ve tried every variation of ratecontrol-enable and control-rate, I’ve tried removing the iframeinterval,
using -1 as the rest of the qp-range values etc.
another issue I have is having to use decodebin instead of nvv4l2decoder, because that one just won’t work there, it doesn’t pass on any information.
But that doesn’t bother me as much.
Thing is, I couldn’t find any more information about nvv4l2h264enc’s qp-range anywhere but the gst-inspect,
The Accelerated GStreamer docs only show this options for the omx encoder
Is this a misdocumentation? I’m assuming if it were I’d receive an error of some sort
I’d appreciate any help,