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