Excessive rtpjitterbuffer cpu utilisation
In a 8 core (AMD EPYC 7551) VM I've an application managing ~50 gstreamer (1.18.4
) pipelines with rtspsrc elements provided like:
rtspsrc location="rtsp://..." ntp-sync=true rfc7273-sync=true latency=3000 protocols=GST_RTSP_LOWER_TRANS_TCP
Half of the pipelines are used for storing the video using hlssink2
and the other half is just relaying the RTP packets via UDP using gst-rtsp-server
. In normal conditions I'm not not observing >50% CPU utilisation on this application/system. But in a network where the application is (i think) struggling to do time synchronisation the CPU usage hits to 100% and the thread breakdown (via top -H -p <pid>
) shows rtpjitterbuffer
s as the top consumers (>9%).
On stdout there're periodic:
transmission on unparented target pad rtpsessionXX_send_rtcp_src -> ''_internalsink_0
transmission on unparented target pad manager_send_rtcp_src_0 -> ''_internalsink_0
messages from each rtspsrc
which is indicating an RTCP comm issue. Additionally increasing the logging verbosity (GST_DEBUG=4,GST_TRACER:7
) reduces the cpu utilisation to <60-70% levels. Just wanted to raise the issue to collect further/relevant data on this network.
I see some rtspjitterbuffer internal timer improvements mentioned in 1.18.4 release notes, so could be a regression or a known issue.