[FFmpeg-devel] [RFC] rtpdec: Reordering RTP packets
Mon May 24 08:55:54 CEST 2010
On Sun, May 23, 2010 at 6:34 PM, Martin Storsj? <martin at martin.st> wrote:
> On Wed, 19 May 2010, trueice wrote:
> > We have also found that Adobe's Flash Media Server sends dis-ordered rtmp
> > packets.
> > It's quite necessary for lavf or ffmpeg/ffplay to support reordering of
> > these kind of network packets.
> > Some API like av_interleave_packets() should work for input formats.
> In which way are they disordered; are packets from different streams
> received incorrectly interleaved, or are packets within one stream
> received in non-monotonic order?
> The latter case, non-monotonic packets in both audio and video stream.
This will happen when FMLE (3.0 version) has run for a long time.
We use libavformat/rtmpproto.c as the receiver, the captured timestamps
are totally dis-ordered. However, Adobe Flash Player itself can play the
stream quite well. As we know, flash player has an internal reordering
with 64 packets or so (that will cause 2-3 seconds brain-damaged delay).
FMS seems not doing any reordering before packet transmission.
To reproduce the issue, you can try:
$ ffmpeg -i rtmp://server/live/livestream -acodec copy -vcodec copy -y
If the stream is troublesome, the above command may fail with a "non
monotone timestamps" error.
I've seen cases of the latter some times, but then I think it's mostly
> been a case where the sender's clock has been adjusted during the sending.
> The former shouldn't be a problem for ffplay/ffmpeg at the moment, I
> // Martin
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
More information about the ffmpeg-devel