rtp failure(s)

Tim-Philipp Müller t.i.m at zen.co.uk
Sat Dec 22 03:36:14 PST 2012

On Fri, 2012-12-21 at 16:30 -0500, Chuck Crisler wrote:

> I am trying to receive, decode and display video received via RTP with
> the following test pipeline.
> gst-launch udpsrc port=$1 !
> 'application/x-rtp,media=video,payload=96,clock-rate=90000,encoding-name=H264' \
>     ! gstrtpjitterbuffer mode=0 ! rtph264depay ! video/x-h264 !
> ffdec_h264 ! ximagesink sync=false
> I am using the good-plugins v. 0.10.23. When I get an incoming media
> stream it immediate fails with the following message.

> gstbasesrc.c(2543): gst_base_src_loop
> (): /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> streaming task paused, reason not-negotiated (-4)
> It *looks* to me like this has been running for a few buffers, so I
> don't understand the 'not-negiotiated' error.

not-negotiated means there's something wrong with the caps somewhere.

In this case, it *might* be that you have to tell rtph264depay manually
to output avc instead of byte-stream format, try with

rtph264depay byte-stream=false access-unit=true ! ffdec_h264 ! ..

> Would anyone please suggest what is wrong or what I can do to diagnose
> the problem? I am feeding it with a rather complicated setup. I
> capture a v4l2 source, encode H264, mpeg2t mux, transmit over the
> network to another system, receive with udpsrc, de-mux, rtph264pay
> pt=96, then transmit to the system that fails. There are actually
> reasons for convoluted setup. The inverse (capture, rtp -> transmit,
> rtph264depay, mp2t mux -> transmit, mp2tdemux, decode, display) works
> nicely.

If you dump a GST_DEBUG=*:5 log to file, and then do
 grep -B25 not-negotiated dbg.log

That should give a clue where the problem is (which pad/element).

> A second issue that I have seen in packet captures is that none of the
> RTP packets seems to have the marker bit set. That seems like a
> serious problem to me because that bit delineates the end of frame so
> that the decoder can then be run. Is there something that I missed
> there?

You're running an ancient version of GStreamer and gst-plugins-good.
This might already be fixed in later versions (I don't know, I didn't


More information about the gstreamer-devel mailing list