video-dev / hls.js

HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
https://hlsjs.video-dev.org/demo
Other
14.79k stars 2.57k forks source link

Custom loader unclear documentation #638

Closed simonemazzoni closed 8 years ago

simonemazzoni commented 8 years ago
Environment

Hello, I'm experiencing an unmanaged behavior using hls.js on a live HLS stream.

The HLS stream is generated using Wowza Streaming Engine that produces the playlist.m3u8 file containing the chunklist. The problem begins when I load the manifest using loadSource(src) api. If I try to load the source too early, I get a "semi-empty" playlist like this:

`#EXTM3U

EXT-X-VERSION:3

`

and consequently I get the error Uncaught TypeError: Cannot read property 'audioCodec' of undefined raised by `loadsuccess @ playlist-loader.js:357`` If I reload the page (or reload the source via loadSource) all work as expected since on the second try the manifest contains all the informations it needs.

So my guess is that the loading of the playlist is not handled correctly in case is incomplete. I tried to intercept the loading error usng the events, but nothing works, so I tried to write my own loader but the documentation on custom loaders isn't clear at all. Could please someone explain to me how to properly write a custom loader? What is the difference between loader, floader and ploader?

Thanks a lot.

Simone

uldza commented 8 years ago

This happens also when the stream in Wowza Streaming Engine is not correctly configured. When requesting such playlist from hls.js you get back playlist containing only:

#EXTM3U
#EXT-X-VERSION:3

And hls.js fails here since there is no levels.

Will try to implement fix.

simonemazzoni commented 8 years ago

It is exactly what I thought when the error happened. I tried to revert the version to 0.5.44 and it works just fine (I get a MANIFEST_PARSING_ERROR that I can listen to, for example, force source reload).

I'll wait for the fix. Thanks

mangui commented 8 years ago

@simonemazzoni could you plz recheck with latest hls.js/master ? you should now get a fatal MANIFEST_PARSING_ERROR error fired

mangui commented 8 years ago

fixed