Add delay/latency/buffering to a udp transmission

I have this udp transmission pipeline:

"gst-launch-1.0 v4l2src device=/dev/video0 \
    ! image/jpeg,width=1280,height=720,framerate=20/1 \
    ! queue max-size-buffers=600 max-size-bytes=104857600 max-size-time=6000000000 \
    ! rtpjpegpay \
    ! queue max-size-buffers=600 max-size-bytes=104857600 max-size-time=6000000000 \
    ! udpsink host=127.0.0.1 port=5000"

I want to add delay/latency/buffering of 500ms or 1s so that when I start the recording pipeline I have those 500ms or 1s above.

this is my recording pipeline:

"gst-launch-1.0 -e udpsrc port=5000 \
    ! application/x-rtp, encoding-name=JPEG, payload=26 \
    ! queue max-size-buffers=600 max-size-bytes=104857600 max-size-time=6000000000 \
    ! rtpjpegdepay \
    ! queue max-size-buffers=600 max-size-bytes=104857600 max-size-time=6000000000 \
    ! matroskamux \
    ! queue max-size-buffers=600 max-size-bytes=104857600 max-size-time=6000000000 \
    ! filesink location=/videos/video.mkv"

Any idea or help would be very useful to me.

You would try adding rtpjitterbuffer with its latency property set to 500:

gst-launch-1.0 -e udpsrc port=5000 \
    ! application/x-rtp, encoding-name=JPEG, payload=26 \
    ! rtpjitterbuffer latency=500 \
    ! rtpjpegdepay ...