polimediaupv/paella

I can't forward or backward in HLS video with Paella 6.4.1 version

Closed this issue · 14 comments

Describe the bug

I can't forward or backward in HLS video when video are not totatlly precharged with Paella 6.4.1 version
(i have a black screen on video)

To Reproduce

Play video and click on the timeline
(simple video, or image + video, same issue)

Environment Information

Macosx Mojave
Google chrome 81
Firefox 75
Microsoft edge (chromium version)

Additional context

i Use paella on a regular Apache 2 server,
no issue with previous version (6.1.3 or 5)

Thanks

turro commented

Hi Markham

We've been unable to reproduce. Please test again with https://paellaplayer.upv.es/demos/multi-quality-hls/ , that is a demo with 6.4.1 with our HLS server.

There should be something in your HLS server

Your video does'nt work for me :
https://ibb.co/PwQtshV
see (xhr call canceled, pending, same issue for me)

any idea ?

turro commented

Hi Markham

I updated to Chrome 81.0.4044.92 (64 bits) and I am unable to reproduce.

Could that be something with your proxy server?. I don't know what to look more.

Anyway, we are in the middle of the Easter week. Next week we may test more and try to reproduce the issue

try with slow speed connection (i have adsl) and empty internet cache.
no problem with a fiber connection because the video is completely preloaded.

try with last version firefox.

i have no proxy, just adsl connection and empty cache.

Ok there are 2 issues :

  1. Slow network speed paella Behavior (HLS video resume failed. Trying to recover. on firefox)
    xhr canceled on chrome

  2. autoplay-option (disable by defaut on firefox)

turro commented

Now I see it. I've used the developer tools to simulate a low bandwidth connection and that happens.

Could you try to add a sensible value for fragloadingtimeout and levelloadingtimeout in the config .json?. My guess is that is not directly related to Paella, but with hls.js library

Look at https://github.com/video-dev/hls.js/blob/master/docs/API.md#fragloadingtimeout--manifestloadingtimeout--levelloadingtimeout

Regarding the autoplay it's something up to the browser to honor it or not. I think ttat at some point in the future all browsers will kill it

I try to create and modify parameter fragloadingtimeout and and levelloadingtimeout without succes :

i have the same message in console :
HLS video resume failed. Trying to recover.

while the hls.js test site work perfectly
https://hls-js.netlify.com/demo/

Any ideas ?

turro commented

We've been testing and we don't know exactly what is happenning.

First of all seems that the demo is doing something strange Because when you change the URL works some times and sometimes not.

I configured in Chrome a ADSL connection (2Mb upload 1MB dowload 90 msec latency) and basically stucks forever both for our demo video and the hls.js video. Note that cache is disabled.

The way to reproduce is to change the streaming URL, click on apply and then with the developer tools open click reload. There is no cancelled, but I've checked in our case and the cancelled got retried, so that was not the issue.

Have a look to this tests

hls.js demo
image

then I changed to paella demo and seems it's working... sometimes
https://streaming.upv.es/paellaplayerdemo/_definst_/smil:belmar-hls/belmar/playlist.m3u8

No more ideas at this point. Could you try an iOS device with your settings?. Just to test if it is the same behaviour with the iOS hls native client

Our current thoughts point to a hls.js config. However we haven't been able to identify it, since

We've been looking into this
https://github.com/video-dev/hls.js/blob/master/docs/API.md#fine-tuning

Could you try in your installation to lower these?

maxBufferLength (default: 30 seconds)
Maximum buffer length in seconds. If buffer length is/become less than this value, a new fragment will be loaded. This is the guaranteed buffer length hls.js will try to reach, regardless of maxBufferSize.

maxBufferSize (default: 60 MB)
'Minimum' maximum buffer size in bytes. If buffer size upfront is bigger than this value, no fragment will be loaded.

There are also some more values, but seems like a trial& error thing

I try several scenarios with old versions who's works
i try several hls.mis.js version
i try old hls config to replace actual hls config
i try custom hls config
conclusion :
new paella_player.js and new paella_player_es2015.js introduce bugs !

this old paella file (attach file) works without any bug with low connection, no latency, no erro message

paella.zip

Hi,
I just fix the problem when i remove (comment) this part :

line : 14177

console.debug("HLS video resume failed. Trying to recover."); if (this._hls) { this._hls.recoverMediaError(); } else { //iOS In this way the recharge is forced, and it is possible to recover errors. let src = this.video.innerHTML; this.video.innerHTML = ""; this.video.innerHTML = src; this.video.load(); this.video.play(); }

no error, it's works !

turro commented

Thanks a lot @markham89 !!!