Auto plugger for RTP Depay

Nicolas Dufresne nicolas at ndufresne.ca
Fri Jun 12 13:48:46 UTC 2020


Le jeudi 11 juin 2020 à 22:05 -0500, josh a écrit :
> You are correct decodebin works but only if you set the specific caps i.e.
> 
> gst-launch-1.0 -v udpsrc port=10000 !
> application/x-rtp,media=video,encoding-name=H264,clock-rate=90000,payload=96
> ! rtpjitterbuffer ! decodebin ! videoconvert ! queue max-size-buffers=3 !
> autovideosink
> 
> However if I don't know whether it's H264 or H265 how do i set the caps? 

Ah, so gst-launch-1.0 is your application. Normally RTP dynamic payload
types are used along with a signalling protocol, something based on
WebRTC, SIP, XMPP, RTSP.

If you really want to stick with this solution without a signalling
protocol, you should chose one of the static payload types. One option,
as used in TV broadcasting, is to use MPEG TS container.

> 
> Using parsebin like this doesn't work...
> 
> gst-launch-1.0 -v udpsrc port=10000 !
> application/x-rtp,media=video,clock-rate=90000,payload=96 ! rtpjitterbuffer
> ! parsebin ! decodebin ! videoconvert ! queue max-size-buffers=3 !
> autovideosink
> 
> It gives fails with...
> 
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Got context from element 'autovideosink0': gst.gl.GLDisplay=context,
> gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayCocoa\)\ gldisplaycocoa0";
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
> application/x-rtp, media=(string)video, clock-rate=(int)90000,
> payload=(int)96
> /GstPipeline:pipeline0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps
> = application/x-rtp, media=(string)video, clock-rate=(int)90000,
> payload=(int)96
> /GstPipeline:pipeline0/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps
> = application/x-rtp, media=(string)video, clock-rate=(int)90000,
> payload=(int)96
> /GstPipeline:pipeline0/GstParseBin:parsebin0.GstGhostPad:sink.GstProxyPad:proxypad0:
> caps = application/x-rtp, media=(string)video, clock-rate=(int)90000,
> payload=(int)96
> /GstPipeline:pipeline0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src:
> caps = application/x-rtp, media=(string)video, clock-rate=(int)90000,
> payload=(int)96
> Missing element: application/x-rtp decoder
> ERROR: from element /GstPipeline:pipeline0/GstParseBin:parsebin0: Your
> GStreamer installation is missing a plug-in.
> Additional debug info:
> ../gst/playback/gstparsebin.c(3487): gst_parse_bin_expose ():
> /GstPipeline:pipeline0/GstParseBin:parsebin0:
> no suitable plugins found:
> Missing parser: application/x-rtp (application/x-rtp, media=(string)video,
> clock-rate=(int)90000, payload=(int)96)
> 
> Execution ended after 0:00:02.371224000
> 
> 
> 
> 
> 
> Nicolas Dufresne-5 wrote
> > Le jeudi 11 juin 2020 à 09:39 -0500, josh a écrit :
> > > I'm not sure if I can use parsebin. Here’s my pipeline : 
> > > 
> > > gst-launch-1.0 udpsrc port=10000 ! application/x-rtp ! rtpjitterbuffer !
> > > rtph264depay ! decodebin ! videoconvert ! queue max-size-buffers=3 !
> > > autovideosink
> > 
> > You "should" be able to simply drop rtph264depay and let decodebin
> > handle it.
> > 
> > > To decode H265 I need to replace rtph264depay with rtph265depay. I
> > > believe I
> > > want to use rtpbin but it doesn't work when I tried it.
> > > 
> > > 
> > > 
> > > Tim Müller wrote
> > > > On Thu, 2020-06-11 at 01:50 -0500, josh wrote:
> > > > 
> > > > Hi Josh,
> > > > 
> > > > > Is there an auto plugger like decodebin for RTP Depaying? I'm using
> > > > > udpsrc and would like to either use rtph264depay or rtph265depay
> > > > > depending on what udpsrc receives then pass to decodebin.
> > > > 
> > > > parsebin might do the job.
> > > > 
> > > > You might also want to add an rtpjitterbuffer after udpsrc, in case you
> > > > haven't got one yet.
> > > > 
> > > > Cheers
> > > >  Tim
> > > > 
> > > > 
> > > > -- 
> > > > Tim Müller, Centricular Ltd - http://www.centricular.com
> > > > 
> > > > _______________________________________________
> > > > gstreamer-devel mailing list
> > > > gstreamer-devel at .freedesktop
> > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > > 
> > > 
> > > 
> > > --
> > > Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > 
> > gstreamer-devel at .freedesktop
> > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > 
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at .freedesktop
> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 
> 
> 
> 
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list