video interrupted,timestamping issue?

Katerina Voulgary katerina.voulgary at iccs.gr
Tue Jan 26 13:34:17 UTC 2021


Hello everyone,

I have these pipelines and video doesn't stream smoothly to a webrtc client:

Sender pipeline in python(goes through opencv):

         self._videoRGBString = "v4l2src device=/dev/video9 ! 
video/x-raw,format=YUY2, width=1920, height=1080,framerate=15/1 ! 
videoconvert ! queue ! video/x-raw,format=BGR ! appsink "


         self._writerRGBString = "appsrc caps=video/x-raw,format=BGR \
                                 ! queue ! videoconvert ! 
video/x-raw,format=I420,width=1920,height=1080,framerate=15/1  \
                                 ! queue ! omxh264enc profile=baseline 
control-rate=1 qp-range=35,45:35,45:35,45 peak-bitrate=1500000 
preset-level=0 \
                                 ! video/x-h264, 
stream-format=byte-stream, alignment=au, 
width=1920,height=1080,framerate=15/1\
                                 ! queue ! h264parse ! video/x-h264, 
alignment=au, stream-format=byte-stream, 
width=1920,height=1080,framerate=15/1\
                                 ! queue ! rtph264pay config-interval=-1 
! queue ! udpsink "+ self._config['janus']['url_RGB'] +"  \
                                  async=false"

cv2.VideoWriter(self._writerRGBString,0,15.0,(1920,1080))


Receiver pipeline:

     gst-launch-1.0 udpsrc port=8006 ! 
application/x-rtp,encoding-name=H264,payload=96 ! rtpjitterbuffer mode=1 
! rtph264depay ! decodebin ! videoconvert ! glimagesink

Some logs on the receiver:

0:03:54.409415392 2343207 0x5561344bb860 WARN rtpjitterbuffer 
rtpjitterbuffer.c:749:rtp_jitter_buffer_calculate_pts: backward 
timestamps at server, schedule resync
0:03:54.409648475 2343207 0x5561344bb860 INFO rtpjitterbuffer 
rtpjitterbuffer.c:780:rtp_jitter_buffer_calculate_pts: resync to time 
0:03:54.290964724, rtptime 9:57:44.938222222
0:03:55.516084124 2343207 0x5561344bb860 WARN rtpjitterbuffer 
rtpjitterbuffer.c:572:calculate_skew: delta - skew: 0:00:01.040029654 
too big, reset skew

The video stream has to go to a JanusWebrtc server. The stream 
frequently stops(we see no image or a still frame depending on the 
browser) like it is missing data. I think it is a timestamp issue that 
happens because of the latency(4" to the screen) that the processing 
introduces and the webrtc server cannot handle. The sender machine will 
never have a correct utc time if it is of interest.

Can I get an insight of what is missing to run smoothly in the client? I 
can give any other logs/info as needed.

The machine is a jetson xavier with  GStreamer 1.14.5.




More information about the gstreamer-devel mailing list