videojs / video.js

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

Query to server is been done for every target duration in case of event playlist #6116

Closed sethurv closed 4 years ago

sethurv commented 5 years ago

Description

  1. Live stream spec section 6.3.4 states playlist shouldn't be queried when not being played, whereas the query for event playlist is happening even in the paused state.

In order to reduce server load, the client SHOULD NOT reload the Playlist files of Variant Streams or alternate Renditions that are not currently being played.

  1. The query to server is happening for every target duration, whereas the spec defines this is the least duration.

the client MUST wait for at least the target duration before attempting to reload the Playlist file again

Event playlist is looking for EXT-X-ENDLIST tag to stop the playlist query. There is no other option available to delay the playlist query.

I see the first issue as spec violation, where as the second should be supported to serve multiple clients. Consider a case where 1000s of clients querying the server for every 6 seconds, there should be a way to avoid frequent query to the server.

Steps to reproduce

  1. Create a m3u8 event playlist.
  2. Make sure EXT-X-ENDLIST is not served in the playlist.
  3. Play the m3u8 playlist through VideoJS
  4. Observe frequent query to the server.

Results

Expected

Query to server should be configurable to avoid server load.

Actual

Query to server is much frequent done for every target duration, say 6 seconds.

Additional Information

versions

videojs

7.6.0

browsers

Chrome 75.0.3770.142

OSes

Windows 10, Mac Sierra

plugins

NA

welcome[bot] commented 5 years 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.

gkatsev commented 5 years ago

So, we've talked about this some more internally. We do believe that our behavior is correct. The specifically talks about not reloading the playlists that aren't currently being played. Plus, while you're at the live edge, we still need to make the request every target duration or the playback will stall, so, ultimately, your backend should be able to handle the load (perhaps with good cache-control headers). We probably want to implement something like https://github.com/videojs/videojs-contrib-hls/pull/785 so that users like you can tweak things manually. It'll also help with issues like https://github.com/videojs/video.js/issues/6081. Unfortunately, we're pretty swapped and are unlikely to be able to implement this in the short term.

musarano commented 5 years ago

Thank You for address this thread: #6081. Lets hope you guys can have sometime to spend with this, Cant wait to begin using VideoJs as soon is implemented ! We do have a whole enhanced and waiting to be upload and substitute the Flowplayer 7.latest for VideoJs Player.

Thank You and best wishes !

-M

sethurv commented 5 years ago

We are looking forward to get it implemented! Thanks for the feedback!

sethurv commented 5 years ago

"Unfortunately, we're pretty swapped and are unlikely to be able to implement this in the short term."

Fix is planned for any upcoming release? I am holding the VideoJS deployment because of this option. Any alternate way this can be achieved, I will try to explore in the meantime.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

musarano commented 4 years ago

Hi. I went back to FP7 until this could get resolved . Couldnt keep waiting..

Thank you

On Tue, Oct 29, 2019, 2:55 AM stale[bot] notifications@github.com wrote:

Closed #6116 https://github.com/videojs/video.js/issues/6116.

β€” You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/videojs/video.js/issues/6116?email_source=notifications&email_token=ABMFGW247BGJLKLVCCSS3T3QQ7M5BA5CNFSM4IFSHKEKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOUP4TZ6Q#event-2751020282, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABMFGW4RG6NMBBDVFPCT4SDQQ7M5BANCNFSM4IFSHKEA .