-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Regression in segment time calculation - presentationTimeOffset is added when it should not be #1232
Comments
Here's an externally accessible URL from a development server: https://live.axtest.net/routes/lapd-v1-cb/www_c1/Manifest.mpd
|
This is breaking a lot of streams. Can we get a fix in the near future @joeyparrish? We're currently not able to upgrade to latest version due to this blocking us. |
We have a problem where shaka 2.3.1 want start playing our streams however dashif, bitmovin and older shaka versions starts playing the mpeg dash streams immediately Shaka keeps saying there is an issue with the time of the segments however all other players are playing back our streams just fine. Could these issues be related? I can provide a test url for any of the devs if wanted. Just can't post it public. |
This should be working now in the nightly build: https://nightly-dot-shaka-player-demo.appspot.com/demo/ Can someone please confirm? |
Doesn’t work for me. My stream still shows the same problems as before.
Jacob
… On 1 Feb 2018, at 16.51, Joey Parrish ***@***.***> wrote:
This should be working now in the nightly build: https://nightly-dot-shaka-player-demo.appspot.com/demo/
Can someone please confirm?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@TheModMaker, can you please take a look? |
I confirm the stream I posted appears to work with the nightly build. |
@stroemlund Can you give us a manifest URL? |
… On 1 Feb 2018, at 18.16, Jacob Trimble ***@***.***> wrote:
@stroemlund Can you give us a manifest URL?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@stroemlund That manifest doesn't use When I fetch the manifest at Since this is unrelated I'm closing the issue. If you have problems with another stream, you should probably file a new issue. |
Sure makes sense! Well we are running elemental encoders according to standards and we see no reason for it to drift as this is a problem even at the very first segment of the stream. So it doesn’t happen over time but immediately from the start.
… On 1 Feb 2018, at 18.58, Jacob Trimble ***@***.***> wrote:
Closed #1232.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Cherry-picked for v2.3.3. The correctness of the fix was still being debated while I was preparing v2.3.2. Sorry for any inconvenience caused by delaying this fix for one more release. |
So 2.3.3 the drift fix should be included?
… On 1 Feb 2018, at 22.23, Joey Parrish ***@***.***> wrote:
Cherry-picked for v2.3.3. The correctness of the fix was still being debated while I was preparing v2.3.2. Sorry for any inconvenience caused by delaying this fix for one more release.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
No, we are still working on fixes for drift, which you can follow in #999. The fix for |
Just funny the streams are playing in 2.2.x
… On 2 Feb 2018, at 19.55, Jacob Trimble ***@***.***> wrote:
No, we are still working on fixes for drift, which you can fallow in #999. The fix for SegmentTemplate with duration will appear in 2.3.3.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Referring to the analysis above in #1232 (comment), if the segment times are in the future, it sounds like it's not drift, but rather a clock sync or encoder clock issue. Is the clock on your encoder correct? Do you have clock sync set up on the content? |
The clock is spot on. And how can the same encoder set different time on segments and manifest start?
… On 2 Feb 2018, at 20.17, Joey Parrish ***@***.***> wrote:
Referring to the analysis above in #1232 (comment), if the segment times are in the future, it sounds like it's not drift, but rather a clock sync or encoder clock issue. Is the clock on your encoder correct? Do you have clock sync set up on the content?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
I don't know, but it could be a bug in the Elemental encoder. Have you talked to Elemental support? |
Yes plenty of times. And they simply refers to the stream working in every other players except shaka due to shaka handling the timestamps differently.
… On 12 Feb 2018, at 19.46, Joey Parrish ***@***.***> wrote:
I don't know, but it could be a bug in the Elemental encoder. Have you talked to Elemental support?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
As far as we can tell (analysis above), the segment times are in the future. Since we are already planning a general approach to ignore availabilityStartTime (#999), I don't think there's anything more specific we can do for you right now. I expect your problem will be solved once #999 is implemented. In the mean time, you are always welcome to customize Shaka Player sources however you need to for your deployment. Sorry we couldn't do more for you directly. If you subscribe to #999, you will be notified when we close the issue. |
2075050 appears to have introduced a regression, with the key line in question being https://github.com/google/shaka-player/blame/master/lib/dash/segment_template.js#L324. Possibly more of the logic is suspect - I did not dig deeper beyond finding why the first numbers with my video were off.
As far as I can tell, the function
find
appears to be there to determine theMPD start time in secondssegment position of the segment containingperiodTime
, which is an offset from the start of the period in seconds.Using
presentationTimeOffset
in this calculation is incorrect. PTO does not determine anything about the MPD timeline, it says what media timestamp (PTS) corresponds to periodTime = 0. You should only use it for aligning the media timeline with the MPD timeline.The referenced commit causes any segmentTemplate-using streams with presentationTimeOffset to have segments scheduled at the wrong moments in time.
Still working on getting playable URL for you but I thought I would post immediately as it seemed pretty clear cut to me. Let me know if you want more supporting material and evidence and I am happy to provide.
Example MPD:
The period starts at some point on 2018-01-17. Both the MPD timeline zero point and the media timeline zero point are in 1970. The latter is indicated by presentationTimeOffset. The first segment to be played at period start is number 1.
However, because of the problematic commit, Shaka adds PTO to the first segment, trying to play back something from 2066 instead (it tries to play segment number 379054268 as I post this).
The text was updated successfully, but these errors were encountered: