I wrote a pipeline that grabs a 720 X 576 image from a 1920 X 576 sensor with the v4l2src element on a Nvidia jetson xavier nx. The pipeline grabs the frame and then does 2 things:
- pushes the frame to the
appsink
element - encode it and stream with
udpsink
to the client
The pipeline is as follows:
gst-launch-1.0 v4l2src device=/dev/video0 !
queue max-size-time=1000000 !
videoconvert n-threads=8 !
video/x-raw,format=I420,width=1920,height=576 !
videoscale n-threads=8 method=0 !
video/x-raw,format=I420,width=720,height=576 !
tee name=t ! queue !
valve name=appValve drop=false !
appsink name=app_sink t. !
queue max-size-time=1000000 !
videorate max-rate=25 !
nvvidconv name=nvconv !
capsfilter name=second_caps !
nvv4l2h265enc control-rate=1 iframeinterval=256 bitrate=1615000 peak-bitrate=1938000 preset-level=1 idrinterval=256 vbv-size=64600 maxperf-enable=true !
video/x-h265 !
h265parse config-interval=1 !
tee name=t2 !
queue max-size-time=1000000 !
valve name=streamValve drop=false !
udpsink host=192.168.10.56 port=5000 sync=false name=udpSinkElement
My question is:
Is there any way to reduce the latency of this pipeline?
I tried to reduce the latency by adding many queues and the n-threads to the video scale and videoconvert
but it won't help.