[FFmpeg-trac] #6533(avformat:reopened): Invalid EXT-X-TARGETDURATION in HLS

FFmpeg trac at avcodec.org
Thu Aug 10 12:10:12 EEST 2017


#6533: Invalid EXT-X-TARGETDURATION in HLS
-------------------------------------+------------------------------------
             Reporter:  tonn81       |                    Owner:
                 Type:  defect       |                   Status:  reopened
             Priority:  normal       |                Component:  avformat
              Version:  unspecified  |               Resolution:
             Keywords:  hls          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+------------------------------------

Comment (by tonn81):

 Replying to [comment:7 stevenliu]:
 > > I cannot tell here. I just see that chunk duration is longer than
 requested.
 > It's is longer but it is the segment logic need.
 > yes , if you want to fix it, and you need me to fix it, i can sent a
 patch to you , but i cannot applied it into ffmpeg hlsenc now, because it
 maybe will make some new bugs, one of the bugs is the describe above.

 We could keep it as-is if we fix second part of it.

 > > >    The EXT-X-TARGETDURATION tag specifies the maximum Media Segment
 > > >    duration.  The EXTINF duration of each Media Segment in the
 Playlist
 > > >    file, when rounded to the nearest integer, MUST be less than or
 equal
 > > >    to the target duration; longer segments can trigger playback
 stalls
 > > >    or other errors.
 > >
 > > In other words, we take maximum chunk duration (`4.02`), round to
 nearest integer (`4`). Then `EXT-X-TARGETDURATION` should be greater or
 equal to this `4`.
 > >
 > > Technically, `5` also matches the specification in this case (`4 <=
 5`) but `4` is more precise AND more logical having in mind `-hls_time 4`
 given.
 > >
 > > So my proposal matches the specification -- we should round maximum
 chunk duration to nearest integer, not ceil it.
 >
 > The specification said, the target duration should greater than segment
 duration, (The EXTINF duration of each Media Segment in the Playlist file,
 when rounded to the nearest integer, MUST be less than or equal to the
 target duration;)  it said *MUST*.

 Yeah, MUST not should. But not greater but **greater or equal to rounded
 value**.

 I.e. `round(max{chunk_duration}) <= target_duration`

 I have provided an example of logic that follows the specification.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6533#comment:8>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list