I am receiving an RTP video stream and rendering it. Here's an example of my pipeline:
udpsrc name=udpsrc_element uri=SOME_IP caps=application/x-rtp,media=video,encoding-name=H264,payload=33 ! rtpmp2tdepay ! tsdemux ! h264parse ! avdec_h264 ! tee name=t ! videoconvert ! video/x-raw, format=(string)BGR ! queue ! appsink name=appsink_element sync=false drop=true t. ! videoconvert ! d3d11videosink sync=false
In my case, I am receiving 30 frames per second, but the timing between frames varies from 200ms to 18ms. Specifically, one frame arrives with a delay (iframe), the next few pframes arrive faster than 33ms, and then everything levels out to 33ms, resulting in a consistent 30 frames per second. I need to align this timing through buffering and subsequent retrieval of frames from the buffer. How can I do this? The queue + videorate and rtpjitterbuffer did not help me (although I may not have configured them correctly).
Thank you for your assistance.