Hello all
@JerryChang
I am using nvv4l2h264enc
in gstreamer pipeline for opencv udpsink, I can run it successfully. However, I would like to reduce the level of encoding compression so that on the receiver side, I can get high-quality data/frames.
I tried to tune the parameters of the encoder but have not been to improve the quality of the images.
My pipeline on the sender side from the Jetson looks like this:
gst-launch-1.0 tcambin serial=40120745 tcam-properties=tcam,AutoFunctionsROIPreset=“"Custom\ Rectangle"”,AutoFunctionsROITop=270,AutoFunctionsROIEnable=“true”,AutoFunctionsROIHeight=540,AutoFunctionsROILeft=480,AutoFunctionsROIWidth=970,ExposureAutoReference=69,Gamma=0.51,Saturation=116.0,Sharpness=2,Contrast=19,BalanceWhiteAuto=“Off”,BalanceWhiteBlue=1.53,BalanceWhiteGreen=1.0,BalanceWhiteRed=1.09,GainAuto=“Off”,Gain=7.80 ! nvvidconv ! ‘video/x-raw(memory:NVMM), width=1948, height=1096,format=(string)I420, framerate=30/1’ ! nvv4l2h264enc control-rate=0 bitrate=6000000 profile=4 preset-level=2 insert-sps-pps=true ! ‘video/x-h264,profile=high, stream-format=byte-stream’ ! rtph264pay config-interval=1 pt=96 ! udpsink host=x.x.x.x port=5000
I am using variable bit rate with high profile & fast preset, I tried to chnage qp-range, but so far have not been to tune it optimally to get better results
on the receiver side on a windows PC, I have the following pipeline:
VideoCapture cap(“udpsrc port=5000 ! application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! appsink drop=1”,
** CAP_GSTREAMER);**
Importantly when I use the pipeline to write to a file (.mp4) on the Jetson, a 10sec video is approx ~3.5MB, probably indicating a higher level of compression
Could anyone help me with the parameters for"nvv4l2h264enc" for lower compression?