Receive Pipeline not going to playing state when rtmpsrc with mpegtsdemux is used.

badri badri at
Wed Apr 10 18:40:50 PDT 2013

hi folks,

I am unable to get the pipeline into playing state when I chain rtmpsrc 
with mpegtsdemux.
Much appreciate any help or advice, as I am not making progress looking 
at the debug messages coming from the pipeline.

I've setup a live stream at

The following works fine and dumps bytes to screen:
(Note that there is an RTMP error in negotiation, but that comes from 
rtmpdump as well, and it plays fine).

  % gst-launch rtmpsrc 
location="rtmp:// live=1" ! fakesink 

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: rtmp server sent error
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

Similarly, I can also dump the data to a file and play it back. This 
works fine:
  % gst-launch rtmpsrc 
location="rtmp:// live=1" ! filesink 
  % ffplay test.rtmp

Just to show there is nothing wrong with the stream, it plays fine from 
a regular flash player or from linux command line. For example:
  % ffplay rtmp://
    (There's about a 20sec delay in launching this, but it plays fine)

Now, the problem: when I build a receiver pipeline to view the stream, 
the pipeline does not start - due to the addition of the mpegtsdemux 
state. For example:

% gst-launch rtmpsrc location="rtmp:// 
live=1" ! mpegtsdemux ! fakesink

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: rtmp server sent error

ie., There is no going to the PLAYING state.

Please ignore the "rtmp server error" in negotiation as it comes in all 
the situations, and it possibly occurs as I have disabled the RTMP 
handshake from my server due to problems RTMPDUMP and rtmpsrc had with 

Badri Gopalan

More information about the gstreamer-devel mailing list