Skip to content
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

m3u8 parser bug discovered in Video.js version 8.7.0 onwards (reproducible) #1494

Open
cconley717 opened this issue Feb 2, 2024 · 3 comments

Comments

@cconley717
Copy link

cconley717 commented Feb 2, 2024

Description

When Video.js from version v8.7.0 onwards loads a m3u8 master manifest, the player's timeline indicates extra segments are being loaded.

When the player is given the actual playlist to load (not master), all works well. This leads me to believe that the master manifest parsing logic and subsequent playlist parsing isn't working properly.

I've tested each version of Video.js, starting with pre-release v8.11.1 and can confirm that this problem is present in all previous releases, starting with v8.7.0. v8.6.1 seems to be working fine.

I've included a 15 second video link featuring Video.js release v8.9.0 for the test case, showing that the timeline increments during playback from 15 seconds total duration to 21 seconds total duration. Curiously, what lead me to believe extra segments are being loaded is that the target duration of the stream is 6 seconds, but the math could just be a coincidence.

I've verified that the master manifest and its playlists are valid. The mpeg-ts files that the playlists reference are valid as well. This behavior can be observed in all videos on the website, but it's subtle depending on the video. Big Buck Bunny test video makes it obvious.

The easiest way to reproduce this problem is to set the video's play position to the beginning, paused, and select the "auto" option from the player's quality menu. If you choose one of the actual resolutions, the problem does not occur.

As an aside, the problem is present in Chrome-based browsers and Firefox, but for some reason it doesn't appear when the dev tools are open. I've tested with clean caches in all browsers. I've only tested on Desktop.

Reduced test case

https://www.moartube.com

Steps to reproduce

  1. HLS master manifest file is guaranteed to load when visiting test case link
  2. if video does not auto-play, click play
  3. observe timeline increment for some reason, probably loading extra segments

Errors

No response

What version of Video.js are you using?

v8.9.0

Video.js plugins used.

videojs-landscape-fullscreen

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

Chrome 121.0.6167.140

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

Windows 11 22H2 OS Build 22621.3007

Copy link

welcome bot commented Feb 2, 2024

👋 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.

@cconley717
Copy link
Author

cconley717 commented Feb 2, 2024

The problem goes away completely when I lower my desktop resolution from 2560x1440 to 1920x1080. I have reproduced this on another system. Additionally, opening dev tools shrinks the viewable window and has the same effect, so these two means of altering the player in how it's rendered seem to correlate. How could this be tied to video playback behavior though?

It looks like this may not be a parser issue. Still investigating though.

-edit

It has been three days and by now you're probably aware of the issue. To re-establish stability, I've downgraded the video player in the test link to the last-known good version; v8.6.1. If you need a test link with v8.9.0, I will provision a node using that player for your investigations.

@mister-ben mister-ben transferred this issue from videojs/video.js Feb 29, 2024
Copy link

welcome bot commented Feb 29, 2024

👋 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant