Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
bryoung
Visitor

HLS Adaptive Buffering Issues

Needing some help on our LIVE HLS streaming through ROKU. We are having a lot re-buffers, exits to springboard, or long initial load times. We currently are passing into the videoScreen 1 stream which is adaptive m3u8. We were sending in 2 (one for SD and one for HD) but the HD televisions would ALWAYS choose the SD (Bug?). We have done a lot of testing with different bitrates etc. We are using Elemental encoders to Akamai and we have 2 -100MB pipes to the INET so bandwidth shouldnt be an issue. Any assistance would be appreciated!
0 Kudos
7 REPLIES 7
Anonymous
Visitor

Re: HLS Adaptive Buffering Issues

Check the encoding guide, the issues may be attributable, in large part, to your segmenting strategy. We recommend ~8 segment and 3-5 second segment length.

Also, on Roku1 or Roku2?

Finally, there are several different strategies to choose from about which quality the player attempts to start on and how it chooses to adapt. See the docs for more info.
0 Kudos
bryoung
Visitor

Re: HLS Adaptive Buffering Issues

Both Roku1 and Roku2 (Primarily #2).

The documentation on encoding was stating 10s segments. So you are saying we should do 3-5 second segments and have 8 segments per index? Also since we are using Akamai does it matter how many segments per subdir?

Is there updated documentation with this info or is this information on another document (Currently looking at "Streaming Player Encoding Guide" v4.1). On this document it is stating 10 second segments on pg11-12.

Also if we have 2 adaptive streams (1 for SD and 1 for HD) like below:

using: streamFormat="hls" switchingStrategy="full-adaptation"

<stream streamQuality="SD" streamBitrate="0" streamUrl="http://*****-i.akamaihd.net/hls/live/*****/****_SD/master.m3u8"/>
<stream streamQuality="HD" streamBitrate="0" streamUrl="http://*******-i.akamaihd.net/hls/live/*****/*****_HD/master.m3u8"/>

Why does a HD television always choose the SD? We have multiple bitrates in each. Is there a better way to give the ROKU player this information?

Thanks in advance!
0 Kudos
scyber
Visitor

Re: HLS Adaptive Buffering Issues

I could be wrong, but when using HLS, I think you are only supposed to provide one m3u8 streamURL to the Roku. The Roku will then use that file to determine which bitrate to play. If you are providing both in an Array, my guess is that by default with HLS the Roku simply uses the first item in the array. You could try just passing one to test and see if that works, then use logic to determine the Roku output settings to figure out whcih stream to use. Alternately I'm pretty sure you could combine both the SD and HD streams in the same m3u8.
0 Kudos
bryoung
Visitor

Re: HLS Adaptive Buffering Issues

Thanks SCyber. That is in essence what we are doing. We tried to
Combine the SD and HD but then the SD players would hit the HD signal and start buffering. Also when we try to use ~ 4 streams and add the backup encoder streams as well the roku sits for a very long time loading. Any suggestions on number of streams (including backup streams from backup encoder) and HLS settings where it will load fast at a higher bitrate. I notice GBTV loads fast at a higher bitrate. Thanks in advance for the help!!
0 Kudos
bryoung
Visitor

Re: HLS Adaptive Buffering Issues

In essence what we are doing now after suggestions (sorry wanted to make sure that was clear)
0 Kudos
Anonymous
Visitor

Re: HLS Adaptive Buffering Issues

"bryoung" wrote:
Thanks SCyber. That is in essence what we are doing. We tried to
Combine the SD and HD but then the SD players would hit the HD signal and start buffering. Also when we try to use ~ 4 streams and add the backup encoder streams as well the roku sits for a very long time loading. Any suggestions on number of streams (including backup streams from backup encoder) and HLS settings where it will load fast at a higher bitrate. I notice GBTV loads fast at a higher bitrate. Thanks in advance for the help!!


Please look at the encoding guide in the SDK. It has suggested bitrates for constructing an M3U8 profile. The resolution doesn't affect rebuffering, that's a function of bitrate and bandwidth. If you're seeing rebuffering with HLS is could be that your segments are too long for it to adapt at segment boundries.
0 Kudos
jules27
Visitor

Re: HLS Adaptive Buffering Issues

"bryoung" wrote:
The documentation on encoding was stating 10s segments. So you are saying we should do 3-5 second segments and have 8 segments per index?


I wanted to ask the same question. I'm having buffering issues for live HLS streams on Roku; is 8 segments and 3-5 second segment length the recommended configuration?

Thanks.
0 Kudos