-
Notifications
You must be signed in to change notification settings - Fork 6k
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
HLS media sequence resets make the player get stuck in buffering state #2872
Comments
Are there any thoughts on what could be causing this? I am seeing similar behavior using the ExoMedia wrapper library which uses ExoPlayer 2.4.0. Here is one stack trace from around the time it happened, but it usually doesn't have any errors. |
@parkgrrr, the cause of the issue described here is clear, I think: The server is resetting the media sequence:
A patch is on the way to throw an error when this condition is met, so the application can detect this condition and reset the player. |
If you don't think your issue is related to this, please file a new issue inlcuding all the information requested in the issue template. |
hi AquilesCanta is there any expected time for the patch concerning this issue? |
hi, @AquilesCanta is there any expected time for the patch concerning this issue? |
Still waiting for review. Thanks for your patience. |
This CL aims that the player fails upon: - Playlist that don't change in a suspiciously long time, which might mean there are server side issues. - Playlist with a media sequence lower that its last snapshot and no overlapping segments. This two error conditions are propagated through the renderer, but not through MediaSource#maybeThrowSourceInfoRefreshError. Issue:#2872 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=160899995
I'm really expecting!Thank you very much for your excellent work! |
The new approach will just propagate an exception when the reset condition is met. You will then have to re-prepare the player. In the future we might consider supporting seamless continuation. Please let us know if you run into any problems. |
OK!I will if I meet some new issue.Really thank you! |
hi AquilesCanta i have implemented this but the player tooks a lot of time to play the hls. Is there a way to make to popup an error message to decrease the time of reinitializing the url such as onPlayerError function? |
I don't understand very well. Could you elaborate a bit more on what the issue is? |
hi AquilesCanta the implementation of the handling issue works greatly but it took a time around 2 minutes or more buffering before continuing playing. So is there a way to detect when server is restarted such as OnplayerError function? |
2 minutes is way too long, so something is not going well. A few notes that might be helpful:
The conclusion is: The playlist reset condition might not be detected if you reset too often. A workaround for this would be using a media sequence number that is far back in time, to make sure the reset condition is detected. You should add some logging in the playlist tracker and run again to check this. If this is not happening, no propagation mechanism will work. Finally, two action points:
Hope this helps. |
This CL aims that the player fails upon: - Playlist that don't change in a suspiciously long time, which might mean there are server side issues. - Playlist with a media sequence lower that its last snapshot and no overlapping segments. This two error conditions are propagated through the renderer, but not through MediaSource#maybeThrowSourceInfoRefreshError. Issue:#2872 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=160899995
Issue:#2844 Issue:#2981 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=204718939
Issue description
@AquilesCanta
I meet this issue with this url:
http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8.
This video play stuck buffering in random time and never come back to ready.
This issue will always appear on any device when playing a little bit longer time.Through the analysis of a period of time I find the issue is that sometime this live stream http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8 HlsMediaPlaylist's mediaSequence suddenly change to start from zero.This behavior leads to HlsPlaylistTracker's func getLatestPlaylistSnapshot always return oldPlaylist,so the Exoplayer stuck at buffering.I think in this case the player should continue to play the live stream or throw an exception and not stuck at buffering.
Reproduction steps
Play this url http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8 with a little bit longer time.
Version of ExoPlayer being used
latest
The text was updated successfully, but these errors were encountered: