<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Hello Nicolas,</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Thank you very much. do-timestamp=1 and rtpjitterbuffer did the magic. It is working now.</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Thanks and Regards</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small">Anand</div><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 13 Jul 2023 at 19:36, Nicolas Dufresne <<a href="mailto:nicolas@ndufresne.ca">nicolas@ndufresne.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-2376064834568702928"><div><div>Hi,</div><div><br></div><div>Le mercredi 12 juillet 2023 à 14:59 +0530, Anand Sivaram via gstreamer-devel a écrit :</div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace;font-size:small"><span style="font-family:monospace"><span style="color:rgb(0,0,0)">Dear All,</span><br><br>Whenever I use the raw I420 video frame through shmsink/shmsrc, then it is working fine.<br>But, I need to use RTP packets and I tried the following pipeline.<br><br>gst-launch-1.0 videotestsrc pattern=0 ! capsfilter caps='video/x-raw,format=I420,width=640,height=360,framerate=30/1' ! videoscale ! videorate ! <br>videoconvert ! timeoverlay ! \<br>x264enc key-int-max=30 ! capsfilter caps='video/x-h264,stream-format=byte-stream' ! rtph264pay pt=96 ! \<br>shmsink socket-path=/tmp/gstshm sync=true wait-for-connection=false<br><br>gst-launch-1.0 shmsrc socket-path=/tmp/gstshm ! \<br>capsfilter caps='application/x-rtp,media=(string)video,clock-rate=(int)90000' ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideos<br>ink</span></div></div></blockquote><div><br></div><div>The actual error didn't make it into the error message (a bug probably?), but if you set GST_DEBUG=2 you can see:<br><br> ERROR rtpbasedepayload gstrtpbasedepayload.c:970:gst_rtp_base_depayload_handle_event:<rtph264depay0> Segment with non-TIME format not supported<br><br>You can switch shmsrc to use TIME format with the "do-timestamp=true" property. I would also make it behave like a live source with the is-live property. After fixing this, you may get warning like such (and dropped frames):<br><br> WARN videodecoder gstvideodecoder.c:3668:gst_video_decoder_clip_and_push_buf:<avdec_h264-0> Dropping frame due to QoS. start:0:00:04.677027371 deadline:0:00:04.677027371 earliest_time:0:00:04.68462098<br><br>You can fix this using the rtpjitterbuffer. You may want to reduce the default latency though. A working pipeline:</div><div><br></div><div>GST_DEBUG=2 gst-launch-1.0 \</div><div> shmsrc is-live=1 do-timestamp=1 socket-path=/tmp/gstshm ! capsfilter caps='application/x-rtp,media=(string)video,clock-rate=(int)90000' \<br> ! rtpjitterbuffer ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink</div><div><br></div><div>regards,</div><div>Nicolas</div><div><span></span></div></div>
</div></blockquote></div>