Why the player doesn't offer to time shift (seek) within certain live streams?

Screen Shot 2023-03-03 at 11.43.21 AMScreen Shot 2023-03-03 at 11.43.30 AM

Live manifests typically reference a certain amount of segments at a time. For instance, the oldest segments get removed from HLS variant playlists as new ones get referenced and DASH streams define a TimeShiftBufferDepth, which indicate to the player how far in the past segments remain available and can be requested.

In most cases (except Low Latency), rather than playing the most recent available segment, the player typically plays a few segments behind the live edge. This way, it can buffer segments in advance and minimize rebuffering (stalling) time in case the internet connection is lost or becomes slower. In the Bitmovin Player, the default buffer size is 40s, and can be changed through the buffer configuration.

When the manifest references an amount of segment smaller or equal to the buffer size, then the player uses all the available segments to constitute the buffer, and it is therefore not possible to seek back in time. In this case, the UI doesn’t show a seek bar.
When the manifest references an amount of segments bigger than the buffer size, then the player can use some of these segments to let the user time shift back in the past, and the UI will then display a seek bar.


(min timeshift = the closest to the live edge the player allows to play. This is the default playback point, unless configured differently)

Feel free to experiment with our test page, and the following live streams :

  • Stream with a TimeShiftBufferDepth smaller than the default forward buffer size:
    • https://livesim.dashif.org/livesim/mup_300/tsbd_30/testpic_2s/Manifest.mpd
  • Stream with a TimeShiftBufferDepth bigger than the default forward buffer size:
    • https://livesim.dashif.org/livesim/mup_300/tsbd_300/testpic_2s/Manifest.mpd

Note that timeshifting can be disabled through the playback configuration

2 Likes

Thanks for putting this together Ludo, very helpful.

One more thing to clarify: for HLS playlists, the DVR window is simply the sum of all durations specified by the #EXTINF tags in a variant playlist (minus the player buffer).

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.