Is your feature request related to a problem? Please describe.
Our livestream .mpd set minBufferTime="PT1S" minimumUpdatePeriod="PT3S" timeShiftBufferDepth="PT15S" suggestedPresentationDelay="PT3S", Cache-Control of the mpd file is max-age=3~2, and our stream segment is around 3s (<S d="270000" r="5"/> + timescale="90000").
The problem is with these config, sometimes when we update the mpd (minimumUpdatePeriod="PT3S"), the previous mpd still be cached on CDN, which leads to dashjs have no new segments to play, then after player run out of buffer, it will increase live delay from ~3s to ~6s, to stabilize playing.
Describe the solution you'd like
A built-in config to enable player to auto extend the <SegmentTimeline>, like append the last segment twice to assume the next segment's filename and t, d.
A player can easily extend the timeline on its own. This works similar to calculating the availability of the next segment when numbered segments are used.
To calculate the timestamp of the next segment, the player can simply take the timestamp of the most recent segment and add it to the timing information of the media contained in the segment (signaled in the ‘tfdt’-box of the fMP4). No wall clock needed, no rocket science involved.
Describe alternatives you've considered
Override mpd to remove <SegmentTimeline> sections in service worker.
Extend the TimelineConverter in dashjs.
Additional context
BTW, what's the recommend config combination of using <SegmentTimeline>? What's the normal value should we put for suggestedPresentationDelay, Cache-Control, minimumUpdatePeriod and suggestedPresentationDelay?
Is your feature request related to a problem? Please describe.
Our livestream .mpd set
minBufferTime="PT1S" minimumUpdatePeriod="PT3S" timeShiftBufferDepth="PT15S" suggestedPresentationDelay="PT3S"
, Cache-Control of the mpd file ismax-age=3~2
, and our stream segment is around 3s (<S d="270000" r="5"/>
+timescale="90000"
).The problem is with these config, sometimes when we update the mpd (
minimumUpdatePeriod="PT3S"
), the previous mpd still be cached on CDN, which leads to dashjs have no new segments to play, then after player run out of buffer, it will increase live delay from ~3s to ~6s, to stabilize playing.Describe the solution you'd like
A built-in config to enable player to auto extend the
<SegmentTimeline>
, like append the last segment twice to assume the next segment's filename andt
,d
.Basically doing what this article mentions: https://www.unified-streaming.com/blog/stop-numbering-underappreciated-power-dashs-segmenttimeline
Describe alternatives you've considered
<SegmentTimeline>
sections in service worker.TimelineConverter
in dashjs.Additional context
BTW, what's the recommend config combination of using
<SegmentTimeline>
? What's the normal value should we put forsuggestedPresentationDelay
,Cache-Control
,minimumUpdatePeriod
andsuggestedPresentationDelay
?Thanks.