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.64k stars 2.56k forks source link

Stream not showing video on Chrome 46.0, Works on FF 42.0 #64

Closed PhilKearney closed 8 years ago

PhilKearney commented 8 years ago

Hey guys,

I have a stream playing fine on FF but when I try it on Chrome I can see the network streaming the data but I just get a white player with the html controls.

No errors in the console. Just a few warnings: "level controller,levelLoadError on live stream, discard" - hls.jsmin:1781 "buffer controller: levelLoadError while loading frag,switch to IDLE state ..." hls.js:768

My code looks like this

      playStream: function (streamUrl) {
        if(Hls.isSupported()) {
          console.log("START STREAMING:" + streamUrl);
          console.log(streamUrl);
          var video = document.getElementById('streamPlayer');
          var hlsConfig = { debug: true};
          var hls = new Hls(hlsConfig);
          hls.loadSource(streamUrl);
          hls.attachVideo(video);
          hls.on(Hls.ErrorDetails.MANIFEST_LOAD_ERROR, function () {
            console.log("MANIFEST_LOAD_ERROR");
          });
          hls.on(Hls.ErrorDetails.MANIFEST_PARSING_ERROR, function () {
            console.log("MANIFEST_PARSING_ERROR");
          });
          hls.on(Hls.ErrorDetails.MANIFEST_LOAD_TIMEOUT, function () {
            console.log("MANIFEST_LOAD_TIMEOUT");
          });
          hls.on(Hls.ErrorDetails.MANIFEST_LOAD_TIMEOUT, function () {
            console.log("MANIFEST_LOAD_TIMEOUT");
          });
          hls.on(Hls.ErrorTypes.NETWORK_ERROR, function () {
            console.log("Hls.ErrorTypes.NETWORK_ERROR");
          });
          hls.on(Hls.Events.MANIFEST_PARSED, function () {
            console.log("SHOULD BE PLAYING:");
            video.play();
          });
          hls.on(Hls.ErrorDetails.FRAG_APPENDING_ERROR, function (data) {
            console.log("Frag Appending ERROR");
            console.log(data);
            debugger;
          });
        }else{
          console.log("MSE not supported");
        }
      },

I understand there is not to go with, I cannot provide you with the stream as it's a private sports stream. The stream MediaFormat is "HLS" the BitrateLevel is "Adaptive" the file is a ".m3u8"

What I found strange is that this stream "https://s3.amazonaws.com/tablo-theoplayer-testing/playlist.m3u8" plays fine on both browsers.

PhilKearney commented 8 years ago

Update : I have being messing around with the logs and I noticed I was getting a "FRAG_LOOP_LOADING_ERROR" in my event function I try to recover from this which stops the error from happening again and it seems to fix the fragments getting requested twice. Although I am still getting no video played. Please help.

mangui commented 8 years ago

if you could provide full debug logs, that would help

PhilKearney commented 8 years ago

Hey there, here is the log. There is no real indication of an error. This log matches the same log as in firefox which works fine. Although the network requests look different. It looks as though Chrome is making a duplicate request for a segment where firefox is not.

Building video Tag Video tag Attached START STREAMING:http://bw103.attheraces.com/hls/event/82889/1/0/livepkgr_e111/151118_UKHGDR…hls-live&etime=20151118120417&grs=g131&key=yOM9nXKTGaZvMJHX3dZi%2fE%2bmhw8 loadSource:http://bw103.attheraces.com/hls/event/82889/1/0/livepkgr_e111/151118_UKHGDR…hls-live&etime=20151118120417&grs=g131&key=yOM9nXKTGaZvMJHX3dZi%2fE%2bmhw8 attachVideo media source opened manifest loaded,3 level(s) found, first bitrate:200000 demuxing in webworker switching to level 0 (re)loading playlist for level 0 SHOULD BE PLAYING: startLoad demuxing in webworker switching to level 0 (re)loading playlist for level 0 level 0 loaded [23009,23013],duration:10 live playlist - first load, unknown sliding Loading 23011 of [23009 ,23013],level 0, currentTime:4,bufferEnd:4.000 level 0 loaded [23009,23013],duration:10 live playlist - outdated PTS, unknown sliding Demuxing 23011 of [23009 ,23013],level 0 selected A/V codecs for sourceBuffers:mp4a.40.5,avc1.4d401f parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/4.631/6.031/4.631/6.031/35 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/4.000/5.997/4.000/5.997/86 video buffered : switching to level 2 (re)loading playlist for level 2 level 2 loaded [23009,23013],duration:10 live playlist - first load, unknown sliding live playlist, switching playlist, load frag with next SN: 23012 Loading 23012 of [23009 ,23013],level 2, currentTime:4,bufferEnd:4.000 level 2 loaded [23011,23015],duration:10 live playlist - outdated PTS, unknown sliding loading too slow, abort fragment loading fragLoadedDelay/bufferStarvationDelay/fragLevelNextLoadedDelay :145.6/0.0/45.6 switching to level 0 (re)loading playlist for level 0 Loading 23010 of [23009 ,23013],level 0, currentTime:4,bufferEnd:4.000 level 0 loaded [23011,23015],duration:10 live playlist sliding:4.631 Demuxing 23010 of [23011 ,23015],level 0 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/2.031/4.031/2.031/4.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/2.003/4.000/2.003/4.000/86 video buffered : switching to level 2 (re)loading playlist for level 2 live playlist, switching playlist, load frag with next SN: 23011 Loading 23011 of [23011 ,23015],level 2, currentTime:4,bufferEnd:4.000 level 2 loaded [23011,23015],duration:10 live playlist - outdated PTS, unknown sliding Demuxing 23011 of [23011 ,23015],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/4.631/6.031/4.631/6.031/35 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/4.000/5.997/4.000/5.997/86 video buffered : buffer end: 4 is located too far from the end of live sliding playlist, media position will be reseted to: 8.631 Loading 23013 of [23011 ,23015],level 2, currentTime:4,bufferEnd:8.631 loading too slow, abort fragment loading fragLoadedDelay/bufferStarvationDelay/fragLevelNextLoadedDelay :206.7/0.0/64.7 switching to level 0 (re)loading playlist for level 0 buffer end: 4 is located too far from the end of live sliding playlist, media position will be reseted to: 8.631 Loading 23013 of [23011 ,23015],level 0, currentTime:4,bufferEnd:8.631 level 0 loaded [23013,23017],duration:10 live playlist sliding:7.997 level 0 loaded [23014,23018],duration:10 live playlist sliding:9.997 Demuxing 23013 of [23014 ,23018],level 0 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/8.631/10.031/8.631/10.031/35 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/8.017/10.014/8.017/10.014/86 video buffered : switching to level 2 (re)loading playlist for level 2 Loading 23013 of [23011 ,23015],level 2, currentTime:8.631,bufferEnd:8.631 seeking outside of buffer while fragment load in progress, cancel fragment load Loading 23013 of [23011 ,23015],level 2, currentTime:8.631,bufferEnd:8.631 level 2 loaded [23013,23017],duration:10 live playlist sliding:7.997 level 2 loaded [23013,23017],duration:10 live playlist sliding:7.997 loading too slow, abort fragment loading fragLoadedDelay/bufferStarvationDelay/fragLevelNextLoadedDelay :79.8/0.0/25.0 switching to level 0 (re)loading playlist for level 0 buffer end: 8.631 is located too far from the end of live sliding playlist, media position will be reseted to: 13.997 Loading 23016 of [23014 ,23018],level 0, currentTime:8.631,bufferEnd:13.997 level 0 loaded [23015,23019],duration:10 live playlist sliding:11.997 Demuxing 23016 of [23015 ,23019],level 0 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/14.031/16.031/14.031/16.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/14.008/16.005/14.008/16.005/86 video buffered : switching to level 1 (re)loading playlist for level 1 level 1 loaded [23015,23019],duration:10 live playlist - first load, unknown sliding live playlist, switching playlist, load frag with next SN: 23017 Loading 23017 of [23015 ,23019],level 1, currentTime:10,bufferEnd:10.000 Demuxing 23017 of [23015 ,23019],level 1 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/16.597/17.997/16.597/17.997/35 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/16.005/18.014/16.005/18.014/86 video buffered : switching to level 2 (re)loading playlist for level 2 Loading 23014 of [23013 ,23017],level 2, currentTime:10,bufferEnd:10.000 level 2 loaded [23016,23020],duration:10 live playlist sliding:13.997 Demuxing 23014 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/10.631/12.031/10.631/12.031/35 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/10.014/12.011/10.014/12.011/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 17.997 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:17.997 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:video/18.031/20.031/18.031/20.031/50 parsed data, type/startPTS/endPTS/startDTS/endDTS/nb:audio/18.002/19.999/18.002/19.999/86 video buffered : buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 SN just loaded, load next one: 23019 Loading 23019 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 seeking outside of buffer while fragment load in progress, cancel fragment load buffer end: 10 is located too far from the end of live sliding playlist, media position will be reseted to: 18.031 Loading 23018 of [23016 ,23020],level 2, currentTime:10,bufferEnd:18.031 Demuxing 23018 of [23016 ,23020],level 2

mangui commented 8 years ago

from the logs, we can see segments being appended to the sourceBuffers, but this seems to have no effect on video.buffered, which remains empty, as can be seen from the following log : video buffered :

=> it means that either :

could you provide the output of chrome://media-internals ? that might provide more insights. best would be to get a snapshot of your stream.

mangui commented 8 years ago

outdated, closing, feel free to reopen if still reproducible