videojs / videojs-contrib-quality-levels

Other
157 stars 51 forks source link

User selects a different quality level, the change is applied very slowly. #151

Open Lingareddyvinitha opened 5 months ago

Lingareddyvinitha commented 5 months ago

Description

I am using videojs-contrib-quality-levels with Video.js for adaptive bitrate streaming. I have encountered an issue where the initial quality level is set to a medium or lower quality by default. When the user selects a different quality level, the change is applied very slowly.

Expected Behavior

Actual Behavior

Steps to Reproduce

  1. Initialize the Video.js player with videojs-contrib-quality-levels.
  2. Play a video and observe the initial quality level.
  3. Note the delay in applying the selected quality level.

@forbesjo

pac96 commented 1 month ago

@Lingareddyvinitha how were you able to change the quality level? are you using the default videojs controls or are you creating your own menu?

adrums86 commented 1 month ago

Hi @Lingareddyvinitha, is this still an issue? There has been some work to the way VHS changes qualities somewhat recently that may fix this issue. I would recommend checking your stream against the VHS demo page and the quality-levels/menu implementation there. Doing some quick testing with the bip-bop stream from apple, I'm able to switch quickly between renditions with that implementation. I know the documentation for this plugin is rather lacking (will be improved ASAP), I would highly recommend taking a look at the handleClick code from the videojs-contrib-quality-menu plugin. https://github.com/videojs/videojs-contrib-quality-menu/blob/356341602d796a93cd1e305c1c8136b776a602b4/src/quality-menu-item.js#L103 This shows how to enable and disable quality levels in the same way as the VHS demo page.

SagarBansal21 commented 1 month ago

@adrums86 , I am also facing something similar, also when you try to switch quality levels quickly, it sometimes abruptly stops the media. What I propose is, disable the other quality levels when quality changing is being applied.

adrums86 commented 1 month ago

@SagarBansal21 It is definitely expected for buffering to happen on a quality change from time to time, especially if done rapidly, but not for the media to error out. Is it buffering or is the media throwing some sort of error? Regarding your proposal, you have the right idea as this is how we recommend using the plugin. See the use of the enabled property in handleClick in my previous comment.

SagarBansal21 commented 3 weeks ago

https://github.com/user-attachments/assets/5bebcbc5-ceed-4a80-97db-9b77820b98b8

@adrums86 , if I quickly change between multiple qualities, the media pauses for a second and then ends abruptly.

adamatronix commented 2 weeks ago

Not sure if it's the same issue, but when automatically detecting which stream to play, the on change event will fire with the new resolution, but it doesn't really reflect in the actual video playing. Keeps saying 1080, when clearly it's 720