[FFmpeg-trac] #6533(avformat:reopened): Invalid EXT-X-TARGETDURATION in HLS
FFmpeg
trac at avcodec.org
Thu Aug 10 12:16:32 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 stevenliu):
Replying to [comment:8 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.
now, the chunk_duration is LESS or EQU than target_duration.
if the chunk_duration is LARGER than target_duration, you can show me, let
me fix it.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6533#comment:10>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list