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

HLS low quality at start


I have implemented HLS streaming using AWS using the premium version 7 of the player which works really well except that the first 10 seconds of my videos are now *always* of poor quality until the player detects that a higher bandwidth can be used. I want to move all our content to adaptive streaming but this going to create a bad first impression (with my boss and our users).

https://support.jwplayer.com/customer/portal/articles/1430240-hls-adaptive-streaming

says "the JW Player automatically starts playing the highest quality stream that fits the bandwidth and the screen size." but that doesn't seem to be the case and the same thing happens with the jwp example at the bottom of that page.

If you play the Big Buck Bunny clip and then fullscreen it you can see the lack of detail in the trees on the far right until 10 seconds in (just before the scene changes) when suddenly the detail pops into focus. The player doesn't remember that there is higher bandwidth available either, if you come out of full screen mode drag the position marker back to the beginning again and fullscreen again you can see that it is playing the low quality segment again. If you stay in full screen and rewind the video it'll play the higher res version.

Is there anything I can do to fix this to ensure our videos look the best they can on first play? Otherwise I will need to find another solution.








7 Community Answers

paul.a

User  
0 rated :

I don't see the issue on this page
https://developer.jwplayer.com/jw-player/demos/toolbox/adaptive-streaming/
can someone tell me what the important difference is?

Alex

JW Player Support Agent  
-1 rated :

Hi, Paul.

With HLS, you are correct that the player automatically chooses the highest quality based on the bandwidth and the size of the player. You can see this in effect on this demo page. Also, there is no difference with the configurations of the two examples that you provided.

If you are seeing different behavior with your stream, please supply me with a link to a reproduction page so I may take a look.

Thank you.

paul.a

User  
0 rated :

Hi Alex, could you please reread my first message. I said it appears that the player is NOT automatically choosing the highest quality based on the bandwidth and the size of the player.

The link you provide (https://qa.jwplayer.com/~abussey/demos/general/hls-quality.html) doesn't load.

I outlined steps to reproduce this on this JPW demo page:
https://support.jwplayer.com/customer/portal/articles/1430240-hls-adaptive-streaming
Pause the video at 10 and 11 seconds to see the difference, this happens every time. I could provide you with a reproduction page but the issue is reproducible on the JWP using your own stream.

Thanks for you help.




paul.a

User  
0 rated :

Could this be a caching issue? Do other people see this behavior?

Alex

JW Player Support Agent  
2 rated :

Hi, Paul.

Sorry about the link. The link I sent you did was http://qa.jw…… but the link you say don’t work is https://qa.jw…… I just confirmed that http://qa.jwplayer.com/~abussey/demos/general/hls-quality.html works so I would recommend trying again.

The video on that support article is behaving properly. By default, the quality versions available for the HLS streams we create are 360p, 480p, 720p and 1080p. Since the player on the support article is not 480 pixels tall, or taller, than the quality will never go above 360p when the player is set to manually adapt its quality. So, it is choosing the highest quality version based on the bandwidth and the player size. You could potentially get around this by using the .setVisualQuality() API call, but that would defeat the purpose of streaming an adaptive format like HLS. Please note that if you do want to use .setVisualQuality(), you would have to wrap it in a .on(“play”) event because the player cannot set the visual quality before it starts playing.

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

Thank you!

paul.a

User  
0 rated :

I see, thanks for you answer. Could the player reevaluate the bandwidth requirement as soon as the user switches to fullscreen mode rather than waiting for the end of the current segment?

Alex

JW Player Support Agent  
1 rated :

Hi, Paul.

The player would have to wait until the end of the segment. If it were to switch qualities in the middle of the play back of a segment, it would result in the new segment being played from the beginning, which would rewind the player by a few seconds, causing a negative experience for the viewer.

This question has received the maximum number of answers.