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

Correct way to associate an absolute timestamp with stream start in static MPD? #57

Open
DavidMihola opened this issue Oct 7, 2020 · 0 comments

Comments

@DavidMihola
Copy link

Quick context:

  • We are developing an Android app for playing TV streams, both live while the program is running and then as VOD for 7 days after the program is finished
  • For several features we are relying on the fact that every position in each streams has an absolute timestamp associated with it. The most obvious of these is resuming playback at the last known position:
    • User is watching the live streams but stops in the middle of a program
    • We are storing the absolute timestamp of that position on the server
    • Program is finished and becomes available as VOD
    • When the user watches the VOD stream we can resume at the stored timestamp
  • For playback we are using Google's ExoPlayer
  • Until now, all of our streams were HLS and the playlist contained a #EXT-X-PROGRAM-DATE-TIME
  • We are now migrating some of the streams to DASH and want to find a way to continue using our existing logic

Our logic around ExoPlayer seems to work for our dynamic (live) MPDs as they are currently configured but not for our static (VOD) MPDs. I looked through the relevant ExoPlayer code and found that it relies on the availabilityStartTime and on the start of the first Period but we still cannot figure out the correct way to configure our static MPDs.

I found some discussions that seem to relate to absolute timestamp in a static MPD:

So, my questions:

  • Does it even make sense (within DASH) to associate an absolute timestamp with the stream start in a static MPD?
  • If so, how should the information be transmitted correctly? What should the values of availabilityStartTime and Period.start be and what other values are needed?

I hope this is the right place to ask these questions and am very grateful for any advice!

(Finally, here's my issue at ExoPlayer which I opened a few weeks ago: google/ExoPlayer#7911)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant