<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><b class="">I am just adding few stuff for more clarity.</b></div><div class=""><b class=""><br class=""></b></div><div class=""><b class="">SETUP:</b> So, I have two sender trying to send video from two different devices. I have synced the clocks of both the senders through NTPD daemon. Then I tried executing this pipeline based on the insights from Streamer conference videos and few posts in this forum. I am basically assuming here that the pipeline is going to the use the NTP clock. External clock sync is all I need to do before I implement this. Please correct me if I am wrong. At the receiver I put both streams into a common RTPbin. </div><div class=""><br class=""></div><div class=""><b class="">PROBLEM: </b>I am not getting the expected results<b class="">. </b>The frames are stuck most of the time or out of sync. Please let me know where I am going wrong. I am not exactly sure on where I have to use the Test-Netclocck examples. I thought that was a substitute for NTP daemon based syncing. </div><div class="">I would be really happy if I could get a pipeline based solution. I am not very familiar with the C API.</div><div class=""><br class=""></div><div class=""><b class="">Questions I want to be answered:</b></div><span class=""><div class="">1.Is my pipeline structure correct? </div><div class="">2.I am not modifying the pipeline clocks at all. Just assuming that the pipeline clocks of senders and receivers will be 3.synchronized once we sync the devices through NTP. Is this assumption correct?</div><div class="">4.Should I have just one rtpbin or separate rtpbin for each sender?</div><div class="">5.Should i USE RTPJITTERBUFFER? if yes, should the mode be synced? </div><div class=""><br class=""></div><div class="" style="font-weight: bold;">The pipeline of both senders look like this</div><b class="">SENDER PIPELINE:</b></span><div class=""><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">VOFFSET=0</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">AOFFSET=0</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69); min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">VELEM="v4l2src device=/dev/video1"</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">VCAPS="video/x-raw,width=352,height=288,framerate=15/1"</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">VSOURCE="$VELEM ! queue ! videorate ! videoconvert ! $VCAPS"</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">VENC="vp8enc ! rtpvp8pay"</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69); min-height: 14px;" class="">VRTPSINK="udpsink port=5000 host=$DEST ts-offset=$VOFFSET name=vrtpsink"</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">VRTCPSINK="udpsink port=5001 host=$DEST sync=false name=vrtcpsink"</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">VRTCPSRC="udpsrc port=5005 name=vrtpsrc"</div></div><div class=""><br class=""></div><div class=""><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">gst-launch-1.0 -v rtpbin name=rtpbin ntp-time-source=clock-time \</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""> $VSOURCE ! $VENC ! rtpbin.send_rtp_sink_0 \</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""> rtpbin.send_rtp_src_0 ! $VRTPSINK \</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""> rtpbin.send_rtcp_src_0 ! $VRTCPSINK \</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""> $VRTCPSRC ! rtpbin.recv_rtcp_sink_0 </div></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""><b class="">RECEIVER PIPELINE:</b></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""><b class=""><br class=""></b></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""><div style="margin: 0px; line-height: normal; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)VP8"</div><div style="margin: 0px; line-height: normal;" class="">VIDEO_CAPS2="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)VP8"</div><div style="margin: 0px; line-height: normal; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">VIDEO_DEC="rtpvp8depay ! vp8dec"</div><div style="margin: 0px; line-height: normal;" class="">VIDEO_DEC2="rtpvp8depay ! vp8dec"</div><div style="margin: 0px; line-height: normal; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">VIDEO_SINK="videoconvert ! autovideosink"</div><div style="margin: 0px; line-height: normal;" class="">VIDEO_SINK2="videoconvert ! autovideosink"</div><div style="margin: 0px; line-height: normal; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class="">gst-launch-1.0 -v rtpbin name=rtpbin ntp-time-source=clock-time ntp-sync=true buffer-mode=synced rtcp-sync-send-time=false\</div><div style="margin: 0px; line-height: normal;" class=""> udpsrc caps=$VIDEO_CAPS port=5000 ! rtpjitterbuffer mode=synced ! rtpbin.recv_rtp_sink_0 \</div><div style="margin: 0px; line-height: normal;" class=""> rtpbin. ! $VIDEO_DEC ! $VIDEO_SINK \</div><div style="margin: 0px; line-height: normal;" class=""> udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0 \</div><div style="margin: 0px; line-height: normal;" class=""> rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=$DEST sync=false \</div><div style="margin: 0px; line-height: normal;" class=""> udpsrc caps=$VIDEO_CAPS2 port=6000 ! rtpjitterbuffer mode=synced ! rtpbin.recv_rtp_sink_1 \</div><div style="margin: 0px; line-height: normal;" class=""> rtpbin. ! $VIDEO_DEC2 ! $VIDEO_SINK2 \</div><div style="margin: 0px; line-height: normal;" class=""> udpsrc port=6001 ! rtpbin.recv_rtcp_sink_1 \ </div><div style="margin: 0px; line-height: normal;" class="">rtpbin.send_rtcp_src_1 ! udpsink port=6005 host=$DEST2 sync=false </div></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">Thank you for your time,</div><div style="margin: 0px; line-height: normal; color: rgb(69, 69, 69);" class="">Thiyagesh</div></body></html>