Gstreamer: No RTP protocol present

Olivier Crête olivier.crete at collabora.com
Fri Dec 17 15:31:01 UTC 2021


Hi,

The payloader requires that you tell it which payload type is assigned
to H.264

So you'd want something like this:

gst-launch-1.0 udpsrc port=5555 ! application/x-rtp, encoding-name=H264, payload=96 ! queue ! rtph264depay  ! decodebin  ! autovideosink

Olivier

On Fri, 2021-12-17 at 14:21 +1100, Robert Hensel via gstreamer-devel
wrote:
> width=6400?
> Suggest try with width=640
> 
> Rob
> 
> On Fri, 17 Dec 2021 at 13:55, Howling wong via gstreamer-devel
> <gstreamer-devel at lists.freedesktop.org> wrote:
> > I am having some issues with the following gstreamer command
> > Sender (on embeeded system)
> > gst-launch-1.0 videotestsrc ! video/x-raw, width=6400, height=480 !
> > queue ! vpuenc_h264 ! rtph264pay ! udpsink host=192.168.60.5
> > port=5555
> > 
> > Receiver(on windows)
> > gst-launch-1.0 udpsrc port=5555 ! queue ! rtph264depay  ! decodebin
> > ! autovideosink
> > 
> > But I have got the following response
> > 
> >    Setting pipeline to PAUSED ...
> >     Pipeline is live and does not need PREROLL ...
> >     Got context from element 'autovideosink0':
> > gst.d3d11.device.handle=context,
> > device=(GstD3D11Device)"\(GstD3D11Device\)\ d3d11device4",
> > adapter=(uint)0, device-id=(uint)6429, vendor-id=(uint)32902,
> > hardware=(boolean)true, description=(string)"Intel\(R\)\ HD\
> > Graphics\ P530";
> >     Pipeline is PREROLLED ...
> >     Setting pipeline to PLAYING ...
> >     New clock: GstSystemClock
> >      ERROR: from element
> > /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0: No RTP format
> > was negotiated.
> >     Additional debug info:
> >       ../gst-libs/gst/rtp/gstrtpbasedepayload.c(538):
> > gst_rtp_base_depayload_handle_buffer ():
> > /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0:
> >      Input buffers need to have RTP caps set on them. This is
> > usually achieved by setting the 'caps' property of the upstream
> > source element (often udpsrc or appsrc), or by putting a capsfilter
> > element before the depayloader and setting the 'caps' property on
> > that. Also seehttp://cgit.freedesktop.org/gstreamer/gst-plugins-
> > good/tree/gst/rtp/README
> >      Execution ended after 0:00:00.019641000
> >     Setting pipeline to NULL ...
> >     ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> > Internal data stream error.
> >     Additional debug info:
> >     ../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop ():
> > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0
> >     streaming stopped, reason not-negotiated (-4)
> >     Freeing pipeline ..
> > 
> > The complaint seem to be about the incoming stream is not in rtp
> > format and the rtpdepayh264 should not be placed in the pipeline.
> > This assumption is proven to be correct when i replaced the whole
> > pipeline with a fakesink
> > 
> > Receiver
> > gst-launch-1.0 udpsrc port=5555 ! queue ! fakesink
> > 
> > The pipeline work. However when i observed the packets exchange in
> > wireshark, it show the communication exchange but the protocol is
> > in udp. Though I know that RTP could be based upon UDP protocol but
> > have thought that Wireshark is entirely capable of showing protocol
> > in RTP format
> > 
> > I have thought that the sender has already wrapped the video in rtp
> > format before sending the package out. Like to have some ideas on
> > what is wrong here and how to proceed
> > Regards
> > 

-- 
Olivier Crête
olivier.crete at collabora.com



More information about the gstreamer-devel mailing list