[Ffmpeg-devel] Calculating PTS Times

Rich Felker dalias
Fri Oct 21 15:58:45 CEST 2005


On Fri, Oct 21, 2005 at 02:28:16PM +0800, Colin Ward wrote:
> 
> Rich Felker wrote:
> >
> >> From my understanding of FFMPEG this should for both VFR and CFR videos. 
> >>However, it does not work for all videos.  For some videos (both VFR and
> >>CFR) it calculates the PTS correctly and the video plays beautifully. 
> >>However, for others the calculated PTS values are crazy.  For instance 
> >>last
> >>night I enabled MOV support and my calculated values were coming out as 1,
> >>2, 3, 4, 5, 6 etc.  Yes, 1 as in 1 millisecond!  This was for an 8 FPS
> >>video.
> >
> >Increment by one timebase unit is definitely NOT correct. You need to
> >obtain a pts value for each frame. For proper containers, every frame
> >will come with a pts value to begin with. For broken containers, it
> >can be a lot of work to get the pts.. :(
> 
>   I took this logic from one of the example programs that comes with 
> FFMPEG; IIRC it was from ffplay.c.  So what must I do in the case where 
> AVFrame->pts is 0?  Does this mean that the container/codec is broken? 
> And if so, shouldn't they be fixed?

0 means the pts is 0. If a demuxer outputs 0 except for the first
frame it's broken.

>   Surely if this is the case then everyone will be struggling with the 
> same issues that I am struggling with.  So what is happening?  Are they 
> coming up with their own solutions that work just with the subset of 
> formats and codecs they have chosen?
> 
>   Is there any documentation on this issue, apart from the source itself?

Unfortunately no... :(

Rich





More information about the ffmpeg-devel mailing list