GNOME Bugzilla – Bug 754358
rtpjitterbuffer: Skew reset causing bad video quality and synchronization issues
Last modified: 2018-05-06 12:27:31 UTC
rtpjitterbuffer resets the skew several times resulting with bad video quality and bad audio/video sync. The same RTP stream is smooth in Chrome(WebRTC). Video output from the Gstreamer pipeline. Distorted at 04:55 https://drive.google.com/file/d/0B12AhxvnYHrATUgzdnlKdFVIeXc/view?usp=sharing Log with GST_DEBUG=*:2 https://drive.google.com/file/d/0B12AhxvnYHrAZ3g1LWN2elVIRkU/view?usp=sharing Log with GST_DEBUG=*rtp*:6 https://drive.google.com/file/d/0B12AhxvnYHrAcmRJb2Qzdkd2Vm8/view?usp=sharing To reproduce, use the following Python3 script with the captured packets. https://drive.google.com/file/d/0B12AhxvnYHrAdzloejZOQ2NqeVE/view?usp=sharing RTP/RTCP capture in rtpdump format https://drive.google.com/file/d/0B12AhxvnYHrAOTRwTzZuNGZleWM/view?usp=sharing
Which version of GStreamer is that? Can you try again with 1.7 and check if it is still a problem? If it is, can you get debug logs with GST_DEBUG=rtpjitterbuffer:6 and say approximately at which times things go wrong?
I used Master when I submitted this issue. I tested again with 1.6.2 and 1.7.1 and I can still reproduce the issue. Version 1.7.1 Debug logs with GST_DEBUG=rtpjitterbuffer:6 https://drive.google.com/file/d/0B12AhxvnYHrAWWpoeTd0R3JDMFE/view?usp=sharing Video output The video is distorted at 04:55 https://drive.google.com/file/d/0B12AhxvnYHrAa2VxUklLcjllWmM/view?usp=sharing To reproduce, use the following Python3 script with the captured packets below. https://drive.google.com/file/d/0B12AhxvnYHrAdzloejZOQ2NqeVE/view?usp=sharing RTP/RTCP capture in rtpdump format https://drive.google.com/file/d/0B12AhxvnYHrAOTRwTzZuNGZleWM/view?usp=sharing
Tested on gstreamer 1.8.2 with this pcap file: https://drive.google.com/open?id=0B12AhxvnYHrASXZ3eVhaOVBnU1U gst-launch-1.0 -v rtpbin do-lost=1 name=rtpbin filesrc location=output.pcap ! pcapparse dst-port=5000 ! identity sync=1 ! "application/x-rtp, payload=100, media=video, clock-rate=90000, encoding-name=VP8" ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtpvp8depay ! vp8dec ! videoconvert ! x264enc ! h264parse ! mp4mux ! filesink location=test.mp4
There were many changes related to such things in rtpjitterbuffer, so it's probably solved now in 1.14. Please reopen otherwise.