1

Related: Terminology: "live-dvr" in mpeg-dash streaming

I'm a little bit confused about the MPEG-DASH standard and an use case. I would like to know if there's a way to specify in MPEG-DASH manifests for a "live-dvr" setup the amount of available time for seeking back in players.

That is, for example, if a "live-dvr" stream has 30' of media available for replay, what would be a standard way to specify this in the manifest.

I know I can configure a given player for a desired behaviour. My question is not about players but about the manifests.

I don't fully understand yet if this use case is formally addresed in the standard or not (see the related link). I'm guessing a relation between @timeShiftBufferDepth and @presentationTimeOffset should work, but i'm confused regarding how it should manage "past time" instead of terms like "length" or "duration".

Thanks in advance.

Daniel Cantarin
  • 319
  • 3
  • 7

1 Answers1

1

Yes - you are on the right lines.

The MPEG DASH implementation guidelines provide this formula (my bolding):

The CheckTime is defined on the MPD-documented media time axis; when the client’s playback time reaches CheckTime - MPD@minBufferTime it should fetch a new MPD.

Then, the Media Segment list is further restricted by the CheckTime together with the MPD attribute MPD@timeShiftBufferDepth such that only Media Segments for which the sum of the start time of the Media Segment and the Period start time falls in the interval [NOW- MPD@timeShiftBufferDepth - @duration, min(CheckTime, NOW)] are included.

The full guidelines are available at:

Community
  • 1
  • 1
Mick
  • 24,231
  • 1
  • 54
  • 120
  • After a few experiments, it happens to be that `MPD@timeShiftBufferDepth` do work for showing a fixed time bar in players. However, none of them actually seek when picking a time before the moment the video starts; if let playing, one can seek on *played* time, but not on *past* time. All players seem to use that timeline as available **buffer**, and none resolve remote chunks when the buffer is empty. So, I'm looking for a way to force the players to resolve chunks, not only display a buffer handler. Given that all players behave the same way, there must be a standard way for this. – Daniel Cantarin Jul 28 '17 at 18:55