Skip to content

Update timeShiftBufferDepth on every manifest fetch #295

Closed
@Feenposhleen

Description

@Feenposhleen

Hi

We are in the process of switching encoder solution for our live streams. Previously we have used a straight forward SegmentTemplate based solution with a sliding DVR-window. The new solution is based on just-in-time packaging, were every event in a live stream is served with individual SegmentTimeline manifests that are timeboxed for the event duration.

Our problems arise when playing an ongoing SegmentTimeline stream. As far as we understand, there are two ways of doing this:

1. Static timeShiftBufferDepth
UPDATE 1 - ([S][S][S][S] -  -  -  -  -  -  - )
UPDATE 2 - ([S][S][S][S][S] -  -  -  -  -  - )
UPDATE 3 - ([S][S][S][S][S][S] -  -  -  -  - )

2. Dynamic timeShiftBufferDepth
UPDATE 1 - ([S][S][S][S])
UPDATE 2 - ([S][S][S][S][S])
UPDATE 3 - ([S][S][S][S][S][S])

(timeShiftBufferDepth) in relation to available [S]egments

Your current implementation seem to assume the first variant, but of course we use the second one. On every manifest update, the timeShiftBufferDepth grows slightly to reflect the actual available buffer. However this is not honored by shaka. The available seek range seems only to update at very sporadic intervals (minutes apart). If we monkey patch the logic to always assume a huge timeshiftBufferDepth things work as expected.

Is there a specific reason why this is not supported? Could it be?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions