Name is required.
Email address is required.
Invalid email address
Answer is required.
Exceeding max length of 5KB

Delay in live streaming after error recovery


Hi there,

We are getting more than 5 to 6 mins of delay in live streaming after recovering from error. When we unplug our camera we use to get error "cannot load m3u8: 404 not found". But once camera back to plug in we dont get live streaming straight after that. We use to get data feed url (for ex: "http://d3o036smo35ikq.cloudfront.net/live/smil:5883_216.smil/chunklist_b364000.m3u8") but jwPlayer play video again after 5 to 6 mins of delay. But If we play same url from VLC player then It plays without getting error. We are using jwPlayer version 6.4

If you need any other information please let me know.

18 Community Answers

Alex

JW Player Support Agent  
0 rated :

Hi there,

While I cannot guarantee the results would be any different, I would suggest trying your same setup in the latest version of our player (currently 7.5.2) to see if the behavior is any different. After trying it with version 7.5.2, please let me know if the player displays an error or if it continues showing the spinning circle icon in the middle of the player.

Thank you.

Suley

User  
0 rated :

By the sounds of things, it sounds like a encoding or latency issue you are having which is not related to JW Player, of there is a delay this is usually caused by a number of factors. JW Player simply plays the feed like VLC Player can do Additionally, JW Player you may need to have it set to auto play, i use IPTV and know VLC can handle it well since it allows auto replay

a...

User  
0 rated :

I have upgrade my jwplayer with version 7.5.2 and nothing works. It say "Error loading player:No playable sources found"

I havent change any configuration options, It works fine with version 6.4

Alex

JW Player Support Agent  
0 rated :

When I try the stream URL you provided in your first post, it is returning a 404 Not Found error. Is there a different URL I should be testing?

Ankisha

User  
0 rated :

Url I have provided in live streaming URL so If event is live then only you can test it. But after I have upgraded jwplayer version 7 then our archive events also stop working. Here is link to check our archive event (https://swww.oneroom.co.nz/view/authorise.php?k=aXl5amZabWJCNzNLdmdtV0MwK0lsVzU1NytrUkZPNFJUQnUrSFExMnRJVT06L2J0Y0tOYlluWEFSeDZMMkg2VVc4Q2hZMTRmV042RXlLc0kzYlJoSXN6RT0=)

Alex

JW Player Support Agent  
0 rated :

Hi Ankisha,

The license key you are embedding on that page is associated with a Free account. The ability to play back HLS streams in the player requires a Premium subscription, or higher.

Thank you.

a...

User  
0 rated :

I have changed my license key and error disappear but still not get video. If I copy video url(http://dtnt9f3kwl9rl.cloudfront.net/v3/playback/5884/5884_216.m3u8) and play in VLC player then it plays fine.

Alex

JW Player Support Agent  
0 rated :

Your stream also works fine in our Stream Tester (if you uncheck “Attempt to render in HTML5”).

If I copy your exact .setup() method and paste it into the browser’s console, the player re-sets up itself and the stream plays. When you first load the page, the player is having the following error:

Cannot read property 'load' of undefined

I would suggest trying to create a reproduction page with just a basic setup and making sure that works (it should) and then adding a little bit of your custom setup at a time and seeing where the issue lies.

Please let me know if you need any more help or have any other questions.

Thank you!

a...

User  
0 rated :

I have tried with simple jwplayer setup with test video and It also gives me same error. But That error does not repetitive it occasional. When I debug it I come to know that u.load is undefined came from jwplayer-7.5.2.js file.

Is this version stable? And Do I need to include any other supportive js files? If I switch back to jwplayer 6.4 then It works fine. Can I have stable version of jwplayer 7?

Alex

JW Player Support Agent  
0 rated :

Hey Ankisha,

As long as the version of 7.5.2 that you downloaded was listed as stable, it should be considered to be such. Right now, version 7.6.0 is the current stable release but I don’t think using that is going to make a difference in your issue.

Can you provide me with the URL to your test page with the simple setup so I may take a look?

Thanks.

a...

User  
0 rated :

I have created test page on same link (https://swww.oneroom.co.nz/view/authorise.php?k=aXl5amZabWJCNzNLdmdtV0MwK0lsVzU1NytrUkZPNFJUQnUrSFExMnRJVT06L2J0Y0tOYlluWEFSeDZMMkg2VVc4Q2hZMTRmV042RXlLc0kzYlJoSXN6RT0=)

If I run in Firefox it plays but .play() .pause() and .seek() does not work when I call this function.
If same link run on chrome then It gives error "Cannot load M3U8: Unable to fetch HTTP resource over HTTP"

Thanks

a...

User  
0 rated :

There is typo in above post.
Error was "Cannot load M3U8: Unable to fetch HTTP resource over HTTPS".

Alex

JW Player Support Agent  
0 rated :

Hi there,

When I open your page in Firefox, I’m able to use .play(), .pause() and .seek() successfully in Firefox’s console successfully. I took a look at your code but I don’t see when you are calling the swapFeed() function. Can you point me in the right direction?

I am also getting the same mixed-content (HTTP over HTTPS) errors in Firefox’s console but Firefox is a little more lenient with still playing the content than Chrome is. Either way, if you site is HTTPS, you should only be requesting HTTPS resources.

Thank you.

a...

User  
0 rated :

When I call .play() It should trigger onplay event which is "playerInstance.on('play', function(event) {console.log("On Play");});"

In my case It does not print "On play" when I call .play() function. You can see in my code that after init(); function I have commented playerInstance.play(); because It does not work and does not print "On Play" on console.

When you click on thumbnail at bottom of the page, It will change the video footage. And call swapFeed() function. At that time I use seek() but It does not seek from where I am. Instead of that It starts from beginning.

a...

User  
0 rated :

I have added playerInstance.play(true); under playerInstance.on('error', function(event) {}); event So When I get error It display error message and then continious try to play video if It gets back then without delay it starts playing.

But As I said previously playerInstance.play(); does not work and It doesnt try again to look for play

Alex

JW Player Support Agent  
0 rated :

In my case It does not print “On play” when I call .play() function. You can see in my code that after init(); function I have commented playerInstance.play(); because It does not work and does not print “On Play” on console.

I took a look at your page again in Firefox 48.0.1 and “On Play” is printing out to the console for me. I’ve attached a screenshot for your reference. It also prints “On Play” for me when I switch to a different feed and when I run playerInstance.play(true) in the console.

When you click on thumbnail at bottom of the page, It will change the video footage. And call swapFeed() function. At that time I use seek() but It does not seek from where I am. Instead of that It starts from beginning.

In your swapFeed() function, can you try wrapping playerInstance.play(true) inside of a playerInstance.on(‘play’) event. If you call .seek() right after .play(), it probably won’t work because it the player is not ready to be seeked right when .play() is called.

I have added playerInstance.play(true); under playerInstance.on(‘error’, function(event) {}); event So When I get error It display error message and then continious try to play video if It gets back then without delay it starts playing.

I do not believe .play() would work after an error is thrown. You may want to try at least re-loading the same playlist in the player using .load(). If that doesn’t work, you may have to call .setup() again.

a...

User  
0 rated :

1) On Play display in console because of init() and playerInstance.load() function called. Not because of playerInstance.play() so .play() not work in JW7 it was working fine in JW6.

Same as .seek() we used call straight after load() and play() and It was working fine in JW6 but not working in JW7. When I switch to different thumbnail It should start from where I was not from begining. I have tried to wrap seek() inside firstFrame event but it fails randomly. So its not best way to do. Do you have any better way to do that?

Alex

JW Player Support Agent  
0 rated :

Hi Ankisha,

Please take a look at this test page in which I have a similar setup to what you are describing:

  • When the “Play First Playlist Item From Beginning” is clicked, it calls playerInstance.play() to begin playback.
  • When the .on(‘play’) event fires, a message is printed to the browser’s console.
  • When the buttons for the second or third playlist item are clicked, it will retrieve the current playback position, load the respective new video and seek to that stored playback position.

The code responsible for all this can be found on the “Code” tab of the page. Please let me know if I am leaving something out.

Thank you.

This question has received the maximum number of answers.