Rtsp stream time delay

An issue about the delay caused by pulling rtsp video streams,using python.

# Create the empty pipeline
        if self.codec == "H264":
            self.pipeline = Gst.parse_launch(
                "rtspsrc name=m_rtspsrc ! rtph264depay name=m_rtpdepay ! h264parse ! nvh264dec name=m_avdec ! videoconvert name=m_videoconvert ! videorate name=m_videorate ! appsink name=m_appsink"
            )
        elif self.codec == "H265":
            self.pipeline = Gst.parse_launch(
                "rtspsrc name=m_rtspsrc ! rtph265depay name=m_rtpdepay ! h265parse ! nvh265dec name=m_avdec ! videoconvert name=m_videoconvert ! videorate name=m_videorate ! appsink name=m_appsink"
            )

        # source params
        self.source = self.pipeline.get_by_name("m_rtspsrc")
        self.source.set_property("latency", 1200)
        self.source.set_property("location", self.streamLink)
        self.source.set_property("drop-on-latency", "true")

        # decode params
        self.decode = self.pipeline.get_by_name("m_avdec")

        # convert params
        self.convert = self.pipeline.get_by_name("m_videoconvert")

        # framerate parameters
        self.framerate_ctr = self.pipeline.get_by_name("m_videorate")
        self.framerate_ctr.set_property("max-rate", self.framerate / 1)
        self.framerate_ctr.set_property("drop-only", "true")

        # sink params
        self.sink = self.pipeline.get_by_name("m_appsink")

        # Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)
        # flags: readable, writable
        # Integer64. Range: -1 - 9223372036854775807 Default: -1
        self.sink.set_property("max-lateness", 500000000)

        # The maximum number of buffers to queue internally (0 = unlimited)
        # flags: readable, writable
        # Unsigned Integer. Range: 0 - 4294967295 Default: 0
        self.sink.set_property("max-buffers", 10)

        # Drop old buffers when the buffer queue is filled
        # flags: readable, writable
        # Boolean. Default: false
        self.sink.set_property("drop", "true")

        # Emit new-preroll and new-sample signals
        # flags: readable, writable
        # Boolean. Default: false
        self.sink.set_property("emit-signals", True)

        # self.sink.set_property('drop', True)
        self.sink.set_property("sync", False)

        # The allowed caps for the sink pad
        # flags: readable, writable
        # Caps (NULL)
        caps = Gst.caps_from_string(
            "video/x-raw, format=(string){BGR, GRAY8}; video/x-bayer,format=(string){rggb,bggr,grbg,gbrg}"
        )
        self.sink.set_property("caps", caps)

Above is my gstremaer pipline, which is used to continuously get live images from an rtsp camera(fps=12), but there is a certain delay (more than a few seconds) when I use it, is this related to my pipeline Settings? How can I make changes? Can anyone give me some advice, thank you very much!