[FFmpeg-user] understanding DTS PTS
Bouke
bouke at editb.nl
Wed Mar 4 10:12:57 CET 2009
----- Original Message -----
From: "Alexandre Ferrieux" <alexandre.ferrieux at orange-ftgroup.com>
To: "FFmpeg user questions and RTFMs" <ffmpeg-user at mplayerhq.hu>
Sent: Wednesday, March 04, 2009 9:25 AM
Subject: Re: [FFmpeg-user] understanding DTS PTS
> Marc Mason wrote:
>> John wrote:
>>
>>> I am going through the ffmpeg tutorials and am having trouble making
>>> sense of this statement in tutorial 5.
>>>
>>> <quote>
>>> However, ffmpeg reorders the packets so that the DTS of the packet
>>> being processed by avcodec_decode_video() will always be the same as
>>> the PTS of the frame it returns.
>>> </quote>
>>>
>>> What reordering is it talking about? From the example
>>>
>>> PTS: 1 4 2 3
>>> DTS: 1 2 3 4
>>> Stream: I P B B
>>>
>>> The frames are being read in I P B B. When P is being processed by
>>> avcodec_decode_video() its DTS is 2. P's PTS cannot be 2. What frame
>>> reordering is ffmpeg supposed to be doing? Thanks...
>>
>> Suppose we have 4 frames, and we decide to encode them the following
>> way: F1=I F2=B F3=B F4=P
>>
>> To encode F2 and F3, we need F4 (B frames).
>>
>> The presentation order (PTS) is F1, F2, F3, F4.
>>
>> But since the decoder needs F4 to decode F2 and F3, we can send them in
>> a different order : F1, F4, F2, F3 (the decoding order).
>>
>> The decoder will receive frames in the following order.
>>
>> F1 DTS=1 PTS=1
>> F4 DTS=2 PTS=4
>> F2 DTS=3 PTS=2
>> F3 DTS=4 PTS=3
>
> OK, but what purpose does the DTS serve then ?
>
> -Alex
Tell the decoder when to display the frames (thus, in the correct order)
Bouke
More information about the ffmpeg-user
mailing list