videojs / http-streaming

HLS, DASH, and future HTTP streaming protocols library for video.js
https://videojs-http-streaming.netlify.app/
Other
2.51k stars 424 forks source link

Player hangs on seek with experimentalBufferBasedABR set #1295

Closed phloxic closed 2 years ago

phloxic commented 2 years ago

Description

With experimentalBufferBasedABR set the player hangs on seek to unbuffered(?) position. Can be reliably reproduced when seeking directly after throttling the connection.

Happens with the sample player: https://videojs-http-streaming.netlify.app/?debug=true&autoplay=false&muted=false&fluid=false&minified=false&sync-workers=false&liveui=true&llhls=false&url=https%3A%2F%2Fbitmovin-a.akamaihd.net%2Fcontent%2Fsintel%2Fhls%2Fplaylist.m3u8&type=application%2Fx-mpegurl&keysystems=&buffer-water=true&exact-manifest-timings=false&pixel-diff-selector=false&network-info=false&dts-offset=false&override-native=true&preload=auto&mirror-source=true experimentalBufferBasedABR

Possibly related: https://github.com/videojs/http-streaming/issues/1287

Sources

The above uses https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8 Features alternate audio, which may or may not cause or at least facilitate the issue. Did not test with entirely muxed streams yet.

Steps to reproduce

  1. Start playback over good connection
  2. Throttle connection
  3. Try to seek to unbuffered position
  4. Player hangs and cannot be rescued

Results

Expected

While slow because a downswitch is involved seeking should be successful and the player should stay usable.

Error output

No errors in console. If one tries to rescue (in vain) playback by seeking to a different position, requests are cancelled, player stays on looping over the same request.

Additional Information

videojs-http-streaming version

what version of videojs-http-streaming does this occur with? videojs-http-streaming 2.14.2, but also way before, possibly going back to introduction of experimentalBufferBasedABR.

videojs version

what version of videojs does this occur with? Certainly video.js 7.15.4 (sample player) -- latest 7.20.1, quite likely since experimentalBufferBasedABR was introduced.

Browsers

Tested on Mac:

Platforms

See above, but I strongly assume that experimentalBufferBasedABR is the cause regardless.

Other Plugins

No.

Other JavaScript

No.

video-archivist-bot commented 2 years ago

Hey! We've detected some video files in a comment on this issue. If you'd like to permanently archive these videos and tie them to this project, a maintainer of the project can reply to this issue with the following commands:

phloxic commented 2 years ago

Closing this in favour of #1287

Can re-open if a fix for #1287 does not cover this.

phloxic commented 10 months ago

Actually can still repro in v8.8.0 when throttling in paused state and then seeking. See #1469