shaka-project / shaka-player

JavaScript player library / DASH & HLS client / MSE-EME player
Apache License 2.0
7.21k stars 1.34k forks source link

Incorrect seek range w/ bad AST #491

Closed boredom2 closed 8 years ago

boredom2 commented 8 years ago

Hi there,

I do really love the Shaka Player. But sadly, since a few days, it is not able to process the following LiveStream:

http://sdn-global-live-http-cache.3qsdn.com/2179/_definst_/YHMrRqpv32gxnZc/manifest.mpd

It doesnt work in our Player and neither does it work on the Test Page. It always mentions "cannot find Segment currentPeriod.startTime" - it does work though on DASH.JS and Bitmovin Test Players.

But I knew, it was working already with Shaka, so maybe in the latest Beta, something changed, that I overlooked? Or do I have to add some special configuration for this in order to make it work?

Thanks a lot for your great Work! Christoph

joeyparrish commented 8 years ago

Hi Christoph,

Please test with different versions of Shaka Player to see if it worked on some other version:

http://nightly.shaka-player-demo.appspot.com/ http://v2-0-0-beta3.shaka-player-demo.appspot.com/ http://v2-0-0-beta2.shaka-player-demo.appspot.com/ http://v2-0-0-beta.shaka-player-demo.appspot.com/ http://v1-6-5.shaka-player-demo.appspot.com/ http://v1-5-2.shaka-player-demo.appspot.com/ http://v1-4-2.shaka-player-demo.appspot.com/ http://v1-3-2.shaka-player-demo.appspot.com/

That's the easiest way to check if there is a regression. Thanks!

boredom2 commented 8 years ago

Thats indeed a good advice :)

The Stream seems to have a problem (or maybe thats common with Live?) in 2.0 beta 1/2/3. In Beta 1, there is really an error thrown ("next segment does not exist"). In Beta 2 and 3, no error is shown, but its permanently lookking for the currentPeriod.startTime.

In 1.6.5, it is wokring (there is a hint in the console - availibilityStartTime seems to be inaccurate, some segments may not be available yet), but the Stream is showing.

Its maybe likelely, that the CDN changed something in the way, they create the MPD - I know it was working with Beta 2 (and I think, even with Beta 3) the last week.

Good question is now - is the Manifest "not valid" (or not really valid), and SHOULD be rejected by SHAKA or is it just slightly inappropriate, so that it can be supported? I cannot judge that, thats out of my Scope - but I would be happy to make it work again - unless you say, that the Manifest is really damaged, then Ill go back to the Client.

Thanks a lot for you (as always) fast and friendly support!

Thanks, Christoph

joeyparrish commented 8 years ago

Just looking at Shaka's output, it seems that v2 misunderstands the seek range somehow. v2 wants to start playback at 0, while v1 starts at 625199, for example. We'll look into it.

Will this manifest URL continue to be valid for us for testing while we work on a fix?

boredom2 commented 8 years ago

Yes, it will be. Its a 24-7 permanent LiveStream - feel free to use it as Testing Case :) And thanks for the insights!

joeyparrish commented 8 years ago

It appears this manifest is broken. availabilityStartTime is always changing, which does not make sense. v2 has a strict interpretation of live edge, which we do to keep the code maintainable. In v1, we were able to detect and ignore invalid availabilityStartTime values, but this was complex and ultimately a bandaid on top of invalid content.

boredom2 commented 8 years ago

Hello again - so, this Manifest is not valid in terms of DASH Specifications or more an Edge Case, that wont be taken care of due to Code Complexity? I just ask, because I have to tell the CDN to correct that :)

joeyparrish commented 8 years ago

As far as we can tell, this manifest does not use availabilityStartTime correctly. We need AST to be correct in order to play live streams correctly. It's not an edge case.

In v1, we tried to figure out what the encoder "meant to do", which was both complex and error prone. In v2, we expect the manifest to be correct.

boredom2 commented 8 years ago

I understand and that makes absolutely Sense :)

joeyparrish commented 8 years ago

Please let us know if there's anything else we can do for you. Closing the issue for now.