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. If not what is the best approach? Thanks. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
If you use uridecodebin with an rtp:// uri and you set the caps on the compressed video, you should be fine. NOTE: you will need git or https://gitlab.freedesktop.org/den_erpel/gst-plugins-rtp (kept alive until 1.18 is out) On Thu, 11 Jun 2020 at 10:00, josh <[hidden email]> wrote: Is there an auto plugger like decodebin for RTP Depaying? I'm using udpsrc -- g. Marc
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
my bad, you set the caps on uridecodebin to output compressed video, you should be fine. caps="video/x-h264, video/x-h265" On Thu, 11 Jun 2020 at 12:01, Marc Leeman <[hidden email]> wrote:
-- g. Marc
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by josh
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 [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Thanks Tim. 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 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. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Tim Müller
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 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@.freedesktop > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Marc Leeman
The issue is I don't know if the video is H264 or H265 before I receive it.
Marc Leeman wrote > my bad, > you set the caps on uridecodebin to output compressed video, you should be > fine. > > caps="video/x-h264, video/x-h265" > > On Thu, 11 Jun 2020 at 12:01, Marc Leeman < > marc.leeman@ > > wrote: > >> >> >> If you use uridecodebin with an rtp:// uri and you set the caps on the >> compressed video, you should be fine. >> >> rtp://239.1.2.3:1234?encoding-name=H264 >> rtp://239.1.2.3:1234?encoding-name=H265 >> >> NOTE: you will need git or >> https://gitlab.freedesktop.org/den_erpel/gst-plugins-rtp (kept alive >> until 1.18 is out) >> >> >> >> On Thu, 11 Jun 2020 at 10:00, josh < > josh@ > > wrote: >> >>> 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. If not what is the best >>> approach? >>> Thanks. >>> >>> >>> >>> -- >>> Sent from: http://gstreamer-devel.966125.n4.nabble.com/ >>> _______________________________________________ >>> gstreamer-devel mailing list >>> > gstreamer-devel@.freedesktop >>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >>> >> >> >> -- >> g. Marc >> > > > -- > g. Marc > > _______________________________________________ > gstreamer-devel mailing list > gstreamer-devel@.freedesktop > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by josh
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@.freedesktop > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
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? 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@.freedesktop >> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel >> >> >> >> >> -- >> Sent from: http://gstreamer-devel.966125.n4.nabble.com/ >> _______________________________________________ >> gstreamer-devel mailing list >> > gstreamer-devel@.freedesktop >> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > _______________________________________________ > gstreamer-devel mailing list > gstreamer-devel@.freedesktop > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi, You need to send H264 and H265 with a different payload type, for example, one with 96 and one with 97. Then instead of putting the caps in the pipeline, you need to listen to the "request-pt-map" signal on the rtpjitterbuffer and reply with the right caps for the payload type. Olivier On Thu, 2020-06-11 at 22:05 -0500, josh wrote: 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 !autovideosinkHowever if I don't know whether it's H264 or H265 how do i set the caps?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 !autovideosinkIt 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)96Missing element: application/x-rtp decoderERROR: from element /GstPipeline:pipeline0/GstParseBin:parsebin0: YourGStreamer 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.371224000Nicolas Dufresne-5 wroteLe 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 !autovideosinkYou "should" be able to simply drop rtph264depay and let decodebinhandle it.To decode H265 I need to replace rtph264depay with rtph265depay. Ibelieve Iwant to use rtpbin but it doesn't work when I tried it.Tim Müller wroteOn Thu, 2020-06-11 at 01:50 -0500, josh wrote:Hi Josh,Is there an auto plugger like decodebin for RTP Depaying? I'm usingudpsrc and would like to either use rtph264depay or rtph265depaydepending 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 youhaven't got one yet.CheersTim--Tim Müller, Centricular Ltd -http://www.centricular.com_______________________________________________gstreamer-devel mailing listgstreamer-devel@.freedesktophttps://lists.freedesktop.org/mailman/listinfo/gstreamer-devel--Sent from:http://gstreamer-devel.966125.n4.nabble.com/_______________________________________________gstreamer-devel mailing listgstreamer-devel@.freedesktophttps://lists.freedesktop.org/mailman/listinfo/gstreamer-devel_______________________________________________gstreamer-devel mailing listgstreamer-devel@.freedesktophttps://lists.freedesktop.org/mailman/listinfo/gstreamer-devel--Sent from:http://gstreamer-devel.966125.n4.nabble.com/_______________________________________________gstreamer-devel mailing list[hidden email]https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel -- Olivier Crête _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by josh
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@.freedesktop > > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > > > > > > > > > -- > > > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > > > _______________________________________________ > > > gstreamer-devel mailing list > > > > > gstreamer-devel@.freedesktop > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > _______________________________________________ > > gstreamer-devel mailing list > > gstreamer-devel@.freedesktop > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |