<html><head><style>pre,code,address {
margin: 0px;
}
h1,h2,h3,h4,h5,h6 {
margin-top: 0.2em;
margin-bottom: 0.2em;
}
ol,ul {
margin-top: 0em;
margin-bottom: 0em;
}
blockquote {
margin-top: 0em;
margin-bottom: 0em;
}
</style></head><body><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:0 0 0 .8ex; border-left:2px #729fcf solid;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></body></html>