Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calculation of DASH Live Edge with large propagation delays whilst using SegmentTemplate #7611

Open
vectronic opened this issue Nov 15, 2024 · 0 comments
Labels
type: question A question from the community

Comments

@vectronic
Copy link

Have you read the Tutorials?
Yes

Have you read the FAQ and checked for duplicate open issues?
Yes

What version of Shaka Player are you using?
4.7.2

What browser and OS are you using?
Latest Chrome, various OSes.

Please ask your question

We have a live encoded DASH dynamic manifest being produced by a 3rd party and we are using Shaka to play it. In between the writing of the DASH files and the ability to read it are various layers of network latency and cloud storage mirroring etc. This results in the manifest and media files which are seen by the player being about 90s behind wall clock time. :-(

From looking at network activity and reading "Live Edge" here I can see the player is doing what is documented i.e. it calculates the live edge as:

video.currentTime = now - ast - maxSegmentSize;

Unfortunately that calculation is about 90s ahead of what is actually available in terms of media segments to read (hence we hit 404 errors reading segments).

I understand there is the possibility of specifying MPD@suggestedPresentationDelay as 90 seconds and this could potentially solve the issue. However unless I am mistaken, for other players which are sited closer to the encoder and using non-mirrored storage, this delay would be excessive and unnecessary i.e. we would need to request manifest output incorporating the worst case propagation delay.

In the manifest we have the segment template as follows which has no indication of the current last segment number:

<SegmentTemplate timescale="60000" initialization="test065_ICh24._V_0.proxy.mp4" media="test065_ICh24._V_$Number$.proxy.mp4" duration="480480" startNumber="0"/>

but we also have `mediaPresentationDuration="PT296.296000S" in the manifest which is updated periodically.

What we are effectively seeing is that the edge time is being calculated as about 90s greater than the currently published mediaPresentationDuration. So my questions are:

  • What are we missing which could just make this work?
  • Could/should the player edge time be calculated as: video.currentTime = Min(now - ast - maxSegmentSize, mediaPresentationDuration);
@vectronic vectronic added the type: question A question from the community label Nov 15, 2024
@vectronic vectronic changed the title Calculation of DASH Live Edge with large delays whilst using SegmentTemplate Calculation of DASH Live Edge with large propagation delays whilst using SegmentTemplate Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: question A question from the community
Projects
None yet
Development

No branches or pull requests

1 participant