-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
On a VOD SAI period transition the player starts loading segments ~7.5 minutes past current position #3191
Comments
Here is the manifest player config and some metrics |
The problem appears to be associated with transitioning between periods with different bandwidth ladders.
|
Hi @caridley |
@ismena This has been observed with v3.0.8 |
Understood. |
This problem seems occurs on about 5% of period transition in VOD DAI streams. Sometime the player successfully jumps the large gap introduced by loading segments from a later period. Other times it gets stuck in a buffering state. I tried to reproduce this problem at the same position in the same manifest using a charles proxy local map to serve the manifest attached to this ticket, but the problem did not occur. Seems you just have to play a bunch of ads until the problem occurs. Will send instructions for accessing streams later today. |
I can access your stream - thanks for setting this up! We'll investigate! |
What we see is that on a period transition within an ad beak it starts loading content way out in the future. But the player doesn't fail until ~40 secnds later when it reaches the start of the humongous gap which may not occur until after we return to main content. We are using a forward buffer goal of 40 sec for VOD. |
Yeah, I've seen the buffering gap too. You know what would be super helpful - if you see it happening on your side, could you send me a snapshot of the manifest for the period that was supposed to be played (so, if we got stuck between periods 6 and 7, send the manifest text for the 7th) and the first segment of that period. I'll try to grab the same on my part, if I see the repro. With that, I'll be able to look at the timestamps on the media vs the manifest text and see if something's up with the content. |
@ismena I think the information that you are asking for is already available for the originally reported occurance in attachments to the original report and the 1st two comments. I am doubtful about it being a problem with the content because playing through the same position in the exact same manifest does not always reproduce the problem, and we do not see this problem with shaka 2.5.x |
The position in the presentation timeline is dictated by the If there's a giant gap, either:
If we skipped a bunch, that points to If it's in the wrong place, that means either:
If we calculated There's a lot of assumptions above, and a tree of possibilities to explore. The first thing to verify, IMO, is whether or not the media after the giant gap is in the correct place. |
Huh, interesting. @caridley You've provided some of what I asked in the third comment. Let me see if I got that right: |
Investigation notes so far: |
I have a fix for this in code review. Thanks for your patience! :) |
@ismena would you like me to take your proposed fix for a test drive? |
Please do. If it's checked in today (which hopefully it will be, I just have a few minor comments to address), it'll be on our nightly page by EOD. I'll let you know when it's ready. |
...and done! @caridley Try your content on our nightly page, feel free to reopen this bug if there are issues. If you wanna plug the fix into your source instead to test, the comment from @shaka-bot references the commit. This fix will be part of v3.1 |
I will also cherry-pick the fix to v3.0.9. |
Using the master branch with this fix I was able to play through 10 of our VOD ad breaks without seeing this problem. Looks like it's fixed! Thanks @ismena |
Glad to hear. |
Fixes #3191 Change-Id: I4f2c6b3e2e67a6db1bfb71815a5ce80a3584e41e
Fixes #3191 Backported to v2.5.x Change-Id: I4f2c6b3e2e67a6db1bfb71815a5ce80a3584e41e
*Have you read the FAQ and checked for duplicate open issues?
Yes - I think this issue might be related
#3048 Abr Manager Variants out of sync on multi period live DASH playout
What version of Shaka Player are you using?
3.0.8
The problem does not occur with Shaka 2.5.x versions
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from
master
?Yes - v2.5.20-master-32-g2d52f921
Are you using the demo app or your own custom app?
Custom app
If custom app, can you reproduce the issue using our demo app?
Will try
What browser and OS are you using?
Chrome 88.0.4324.182 on Mac OS 10.15.7
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
What are the manifest and license server URIs?
If and when you want to reproduce we will provide access to streams
What did you do?
Play a Charter VOD SAI stream with multiple ad break and periods that may have different bandwidth ladders.
What did you expect to happen?
Play back should progress smoothly through all of the main and advertising content.
What actually happened?
When currentTime crossed a period boundary in the stream the player started fetching video segments 7.5 minutes ahead of the currentTime. When the currentTime reached this 7 minute gap the player went into a permanent buffering state.
Complete debug logging can be found in this file -
log.txt
2021-02-25T19:29:12.540Z DEBUG CONSOLE (video:87),timeNeeded=2094.095866666666
2021-02-25T19:29:12.540Z DEBUG CONSOLE (video:87),update_:,presentationTime=2053.575858,bufferedAhead=39.65242999999964
2021-02-25T19:29:12.540Z DEBUG CONSOLE (video:87),fetchAndAppend_:,presentationTime=2053.575858,reference.startTime=2094.0958666666666,reference.endTime=2096.092011111111
2021-02-25T19:29:12.541Z DEBUG CONSOLE (video:87),fetching segment
2021-02-25T19:29:12.541Z DEBUG CONSOLE fetching: reference=,[object Object]
2021-02-25T19:29:12.575Z DEBUG CONSOLE Segment downloaded:,deltaTimeMs=108,numBytes=32141,lastTimeChosenMs=1614281348511,enabled=true
2021-02-25T19:29:12.575Z DEBUG CONSOLE Suggesting Streams...
2021-02-25T19:29:12.576Z DEBUG CONSOLE Calling switch_(), bandwidth=15418 kbps
2021-02-25T19:29:12.576Z DEBUG CONSOLE switch_
2021-02-25T19:29:12.576Z DEBUG CONSOLE switch: switching to Stream (video:88)
2021-02-25T19:29:12.576Z INFO CONSOLE Aborting current segment request.
2021-02-25T19:29:12.577Z DEBUG CONSOLE switch: Stream (audio:12) already active
2021-02-25T19:29:12.578Z INFO SHAL.UNIFIED_MEDIA_PLAYER bitrate adjusting to 5548000 from 4923000
2021-02-25T19:29:12.584Z DEBUG CONSOLE (video:88),updating in 0 seconds
2021-02-25T19:29:12.585Z DEBUG CONSOLE Segment downloaded:,deltaTimeMs=10,numBytes=16839,lastTimeChosenMs=1614281352576,enabled=true
2021-02-25T19:29:12.586Z DEBUG CONSOLE Suggesting Streams...
removed some lines here...
2021-02-25T19:29:12.586Z DEBUG CONSOLE Still within switch interval...
2021-02-25T19:29:12.587Z DEBUG CONSOLE (audio:12),checking buffer length
2021-02-25T19:29:12.587Z DEBUG CONSOLE (audio:12),buffer behind too large:,presentationTime=2053.497674,bufferedBehind=12.086909000000105,bufferBehind=10,overflow=2.086909000000105
2021-02-25T19:29:12.589Z DEBUG CONSOLE (video:88),timeNeeded=2094.095866666666
2021-02-25T19:29:12.589Z DEBUG CONSOLE (video:88),update_:,presentationTime=2053.624484,bufferedAhead=39.603803999999855
2021-02-25T19:29:12.589Z DEBUG CONSOLE (video:88),looking up segment from new stream endTime:,2094.095866666666
2021-02-25T19:29:12.589Z DEBUG CONSOLE (video:88),fetchAndAppend_:,presentationTime=2053.624484,reference.startTime=2545.1189999999997,reference.endTime=2547.1276666666663
2021-02-25T19:29:12.589Z DEBUG CONSOLE (video:88),setting timestamp offset to 2545.1189999999997
2021-02-25T19:29:12.589Z DEBUG CONSOLE (video:88),setting append window start to 2545.019
2021-02-25T19:29:12.589Z DEBUG CONSOLE (video:88),setting append window end to 2575.258
skip some loggin
2021-02-25T19:29:14.033Z DEBUG CONSOLE (video:88),advancing to next segment,[object Object]
2021-02-25T19:29:14.033Z DEBUG CONSOLE (video:88),finished fetch and append,[{"start":2045.617999,"end":2093.228288},{"start":2545.152365,"end":2547.154365}]
The text was updated successfully, but these errors were encountered: