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

player.load() fails when seeked in previous video


Hi. I am using JW7, RTMP Streams with signed URLs via Amazon Cloudfront.
I have built custom controls and a custom playlist.

Playing a video and then automatically/manually loading another video works.
But if I seek inside a video (this works) and then try to load another video, the next video will not play.
I had the feeling this worked sometimes yesterday, today this is failing on each try though.

The last thing player.on('all') outputs in this case is the event 'bufferFull'.

This is the output of player.on('all') when successfully playing the next video (plus where the next video is loaded):

Event-type: time; Player-status: playing
Event-type: meta; Player-status: playing
Event-type: beforeComplete; Player-status: playing
Event-type: idle; Player-status: complete

player.load([{file: next_video}]);

Event-type: playlist; Player-status: idle
Event-type: captionsList; Player-status: idle
Event-type: playlistItem; Player-status: idle
Event-type: beforePlay; Player-status: idle
Event-type: playAttempt; Player-status: idle
Event-type: buffer; Player-status: buffering
Event-type: mediaType; Player-status: buffering
Event-type: complete; Player-status: buffering
Event-type: levels; Player-status: buffering
Event-type: bufferFull; Player-status: buffering
Event-type: meta; Player-status: buffering
Event-type: play; Player-status: playing
Event-type: time; Player-status: playing
Event-type: meta; Player-status: playing
Event-type: firstFrame; Player-status: playing
Event-type: time; Player-status: playing

This is the output of player.on('all') when the error occurs (plus where the next video is loaded):

Event-type: time; Player-status: playing
Event-type: meta; Player-status: playing
Event-type: beforeComplete; Player-status: playing
Event-type: idle; Player-status: complete

player.load([{file: next_video}])

Event-type: playlist; Player-status: idle
Event-type: captionsList; Player-status: idle
Event-type: playlistItem; Player-status: idle
Event-type: beforePlay; Player-status: idle
Event-type: playAttempt; Player-status: idle
Event-type: buffer; Player-status: buffering
Event-type: mediaType; Player-status: buffering
Event-type: complete; Player-status: buffering
Event-type: levels; Player-status: buffering
Event-type: bufferFull; Player-status: buffering

It's the same except that nothing happens after bufferFull.

I'd appreciate any pointers as to what my problem might be. Since it seems to be related to seeking, I will debug my seeking procedure, but since seeking inside one video works, I do not know why this would affect loading a new video file into the player. Do I somehow have to manually release memory after seeking?

(writing this already helped me a lot, narrowing it down to seeking+load, before that I thought it was somehow related to me trying to load the next video automatically)

5 Community Answers

Heidi

JW Player Support Agent  
0 rated :

Without seeing your player setup, are you using the default JW Player buffer length for your stream?

rolf.boomgaarden

User  
0 rated :

I tried different buffer lengths on that day, including the default one.

Weird thing is, I worked on something different for a day - and then the problem was gone.
First I thought I've fixed it with my other changes (primarily including .smil-manifests for quality change), but I've checked out the branch where I definitely had this error, but I cannot reproduce it anymore.

I'm also pretty sure I had this problem the days before.
Nothing should have changed - but it seems to be working now.

This is actually rather scary for me, since I don't know if this might occur again. I'll try some things like reducing my internet connection and stuff, maybe it was my internet/pc having a bad day causing this.

rolf.boomgaarden

User  
0 rated :

Okay, found the problem. Weird though that I couldn't reproduce this at all on some days but on other days, it occured every try.

Pretty simple though. I had made custom controls and thus had made a own seeking method where I also wanted dragging seek.
Seems like every click on the seek bar made a few seek calls. Temporarily disabling the dragging solved this, so I'll change my seek implementation.

rolf.boomgaarden

User  
0 rated :

First I thought this was entirely my bad, calling seek too often.
I've played around with the native controls now and noticed that this problem occurs in this case:

- start playing rtmp stream
- seek
- seek again while previous seek is still buffering
-> next load() fails

Heidi

JW Player Support Agent  
0 rated :

Thanks for letting us know about this issue.

This question has received the maximum number of answers.