[FFmpeg-user] Fixed GOP encoding for HLS

Stefano Sabatini stefasab at gmail.com
Tue Dec 18 21:05:05 CET 2012


On date Tuesday 2012-12-18 16:42:53 +1100, Andrew Sinclair wrote:
> Looking at the proposed code change the +1 isn't necessary as according the
> HLS spec the #EXT-X-TARGETDURATION only needs to be >= the segment
> timeframe so as long as it is equal to it is OK.
> 
> I am also getting closer to the issue that I am seeing and it could be for
> support for some older players as using a decimal/float as the duration is
> only a reasonably recent addition to the spec as previously the #EXTINF
> needed to be an int. I am going to play with some patches to the code I
> have done for this and will report back.
> 

> However there is definitely some significant variaion in what segment.c is
> generating as the #EXTINF durations and what ffprobe reports as the
> duration. Can anyone point me in the direction of how segment.c calculates
> the duration?

max_pkt_end_time - start_time

where max_pkt_end_time is the maximum of the values pts+duration for
all packets in the segment.

This can be improved, for example defining a reference stream and only
considering the packets coming from that stream when computing the
max_pkt_end_time.

On the other hand ffprobe relies on header information and on the
assumed bitrate for computing the duration, but the only reliable way
to get a stream duration is to demux the stream and read the various
timestamps.


More information about the ffmpeg-user mailing list