Using shmsink/shmsrc with RTP packets

Anand Sivaram aspnair at gmail.com
Thu Jul 13 15:11:09 UTC 2023


Hello Nicolas,

Thank you very much.  do-timestamp=1 and rtpjitterbuffer did the magic.  It
is working now.

Thanks and Regards

Anand


On Thu, 13 Jul 2023 at 19:36, Nicolas Dufresne <nicolas at ndufresne.ca> wrote:

> Hi,
>
> Le mercredi 12 juillet 2023 à 14:59 +0530, Anand Sivaram via
> gstreamer-devel a écrit :
>
> Dear All,
>
> Whenever I use the raw I420 video frame through shmsink/shmsrc, then it is
> working fine.
> But, I need to use RTP packets and I tried the following pipeline.
>
> gst-launch-1.0 videotestsrc pattern=0 ! capsfilter
> caps='video/x-raw,format=I420,width=640,height=360,framerate=30/1' !
> videoscale ! videorate !
> videoconvert ! timeoverlay ! \
> x264enc key-int-max=30 ! capsfilter
> caps='video/x-h264,stream-format=byte-stream' ! rtph264pay pt=96 ! \
> shmsink socket-path=/tmp/gstshm sync=true wait-for-connection=false
>
> gst-launch-1.0 shmsrc socket-path=/tmp/gstshm ! \
> capsfilter
> caps='application/x-rtp,media=(string)video,clock-rate=(int)90000' !
> rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideos
> ink
>
>
> The actual error didn't make it into the error message (a bug probably?),
> but if you set GST_DEBUG=2 you can see:
>
>   ERROR rtpbasedepayload
> gstrtpbasedepayload.c:970:gst_rtp_base_depayload_handle_event:<rtph264depay0>
> Segment with non-TIME format not supported
>
> 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):
>
>    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
>
> You can fix this using the rtpjitterbuffer. You may want to reduce the
> default latency though. A working pipeline:
>
> GST_DEBUG=2 gst-launch-1.0 \
>   shmsrc is-live=1 do-timestamp=1 socket-path=/tmp/gstshm ! capsfilter
> caps='application/x-rtp,media=(string)video,clock-rate=(int)90000' \
>   ! rtpjitterbuffer ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert
> ! autovideosink
>
> regards,
> Nicolas
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230713/f5a323e7/attachment.htm>


More information about the gstreamer-devel mailing list