videojs / video.js

Video.js - open source HTML5 video player
https://videojs.com
Other
37.92k stars 7.44k forks source link

Player getting stuck when trying to loop on HLS VOD #8119

Open berrutti opened 1 year ago

berrutti commented 1 year ago

Description

Video.js gets stuck intermittently when enabling looping on HLS VOD files.

You can see an example of this happening on this site: https://e.video-cdn.net/watch?video-id=8UDpUTevwHbu2B_8zwJoJF&player-id=8WL9L_kmgqHNxjWUUPSd-h&channel-id=99213

The issue is more apparent when enabling 1080p and looping, and moving the playhead close to the end of the video. Sometimes the player would get stuck and not advance:

image

Could this be related to HMAC tokens? I don't have failed endpoint calls in this situation, I prepared a har file as well:

e.video-cdn.net.har.zip

Reduced test case

https://e.video-cdn.net/watch?video-id=8UDpUTevwHbu2B_8zwJoJF&player-id=8WL9L_kmgqHNxjWUUPSd-h&channel-id=99213

Steps to reproduce

  1. Navigate to the aforementioned link
  2. Change the video quality to 1080P
  3. Activate looping
  4. Start video playback
  5. Move playhead to 4:55
  6. Wait
  7. The loading spinners starts and doesn't go away

Errors

No response

What version of Video.js are you using?

7.21.1

Video.js plugins used.

videojs-contrib-quality-levels

What browser(s) including version(s) does this occur with?

Chrome latest

What OS(es) and version(s) does this occur with?

macos

welcome[bot] commented 1 year ago

👋 Thanks for opening your first issue here! 👋

If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. We get a lot of issues on this repo, so please be patient and we will get back to you as soon as we can. To help make it easier for us to investigate your issue, please follow the contributing guidelines.

dliebner commented 1 year ago

I did some poking around and it seems that creating the videojs player with {loop: true} and then setting the <video> element video.loop = false will prevent the error and allow the video to loop in FireFox.