flowplayer / flowplayer-hlsjs

Flowplayer HLS.js plugin
MIT License
81 stars 35 forks source link

hlsjs video file not found #98

Open speech77 opened 7 years ago

speech77 commented 7 years ago

Hi,

sometimes it happens my CDN provider give back to the player an empty m3u8 playlist. Hlsjs throws an error 'hlsjs video file not found' and stops playing.

Is there a chance to patch the code and drop that zero size response as like as it never existed? I mean like, a kind of workaround until the CDN provider will fix the issue.

Thanks in advance

phloxic commented 7 years ago

@zemen77 - did you check whether your scenario is covered by the setup in this demo: http://demos.flowplayer.org/api/live-check.html ?

speech77 commented 7 years ago

Hi @blacktrash,

I checked it and I tried some tweaked settings too, like: manifestLoadingMaxRetry: 1000, manifestLoadingRetryDelay: 5000

but it still throws an error event on the player: error args: (3) [Event, {…}, {…}, callee: ƒ, Symbol(Symbol.iterator): ƒ] 0 : Event {isTrusted: false, type: "error", target: null, currentTarget: null, preventDefault: ƒ, …} 1 : {conf: {…}, currentSpeed: 1, volumeLevel: "1", video: {…}, disabled: false, …} 2 : {code: 4, video: {…}, message: "Video file not found"} Is there a way to catch the empty manifest error in the xhrSetup obj and skip it?

Thanks a lot,

speech77 commented 7 years ago

Hi,

here some logs about my issue: hlsjs debug logs: [log] > loading playlist for level 0 [log] > same live playlist, reload twice faster [log] > live playlist, reload in 2362 ms [log] > level 0 loaded [0,4393],duration:21961.120000002193 [log] > live playlist sliding:0.010 [log] > loading playlist for level 0 flowplayer error event: [Event, {…}, {…}, callee: ƒ, Symbol(Symbol.iterator): ƒ] [log] > destroy hlsjs event: ["hlsDestroying", callee: ƒ, Symbol(Symbol.iterator): ƒ] [log] > detachMedia [log] > media source detaching hlsjs event: ["hlsMediaDetached", callee: ƒ, Symbol(Symbol.iterator): ƒ] [log] > main stream:IDLE->STOPPED hlsjs event: ["hlsMediaDetaching", callee: ƒ, Symbol(Symbol.iterator): ƒ] hlsjs event: (2) ["hlsError", {…}, callee: ƒ, Symbol(Symbol.iterator): ƒ]

Here are the properties from last entry log:

The reason for the error is I get somehow an 'empty' manifest from the server at a random time.

Is there a way to prevent this arror as fatal? Thanks in advance

phloxic commented 7 years ago

Then try with recoverNetworkError: true in your hlsjs config; see: https://flowplayer.com/docs/plugins.html#hlsjs-options

ibnbd commented 6 years ago

@blacktrash I have a strange problem with Android Device and HLS. I have two android devices and 4 HLS links.

2 of those links are just plain URL ending with m3u8 And other 2 has dynamic wmsAuthSign

This live streaming works just perfect on a Android device, and another device can only play plain URLs and for dynamic wmsAuthSign it shows "hlsjs video file not found ".

Then I tried with several online based real android devices and I encountered this on many devices.

Any idea why this is happening?

bbbo commented 6 years ago

@ibnbd please provide minimal (player setup only, on a dedicated html page) sample links for each scenario, and give details about the affected Android device names and OS / browser versions. Do the HLS streams play in a plain

appoualid commented 6 years ago

Hi,

Did you resolve your problem? Could you please share the solution ? I have the same issue

bbbo commented 6 years ago

see my answer above. Link to a minimal sample page and the stream urls please. Also: do they play in a plain