Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
matrixebiz
Level 7

What to use for unknown HLS stream quality?

Hello All, I'm using the default SDK settings for streamBitrate because I have no way of determining the actual bitrate;
<media>
<streamQuality>SD</streamQuality>
<streamBitrate>1500</streamBitrate>
<streamUrl>http://HLS/live.m3u8</streamUrl>
</media>

Taken from the HLS Troubleshooting thread;
5) If your HLS streams are less than 1.5 Mb/s, they may take very long in the preloading phase. Roku considers this a bug in the current firmware, but there is a workaround. Instead of setting content metadata StreamBitrates = [0] for your HLS stream, set it to the actual bandwidth of your stream when it is less than 1.5 Mb/s. Example for 900kbps stream: StreamBitrates = [900]


1) What does the "0" setting do? <streamBitrate>0</streamBitrate> Does it allow the Roku to adjust Bitrate/quality according to streaming speed if the connection isn't the greatest?
2) Since I won't also know if the user of my channel will have an SD or HD television, if I leave the setting at <streamQuality>SD</streamQuality> will this make it compatible with both television types but not degrade the quality on an HD TV?
0 Kudos
3 Replies
jamilou
Level 7

Re: What to use for unknown HLS stream quality?

"matrixebiz" wrote:
Hello All, I'm using the default SDK settings for streamBitrate because I have no way of determining the actual bitrate;
<media>
<streamQuality>SD</streamQuality>
<streamBitrate>1500</streamBitrate>
<streamUrl>http://HLS/live.m3u8</streamUrl>
</media>

Taken from the HLS Troubleshooting thread;
5) If your HLS streams are less than 1.5 Mb/s, they may take very long in the preloading phase. Roku considers this a bug in the current firmware, but there is a workaround. Instead of setting content metadata StreamBitrates = [0] for your HLS stream, set it to the actual bandwidth of your stream when it is less than 1.5 Mb/s. Example for 900kbps stream: StreamBitrates = [900]


1) What does the "0" setting do? <streamBitrate>0</streamBitrate> Does it allow the Roku to adjust Bitrate/quality according to streaming speed if the connection isn't the greatest?
2) Since I won't also know if the user of my channel will have an SD or HD television, if I leave the setting at <streamQuality>SD</streamQuality> will this make it compatible with both television types but not degrade the quality on an HD TV?


Hello,

Did you finally know what 0 means in the StreamBitrates part of the code ?

Thank you
0 Kudos
matrixebiz
Level 7

Re: What to use for unknown HLS stream quality?

No, I assume it means that it allows the Roku to be Adaptive
0 Kudos
RokuLeoW
Level 7

Re: What to use for unknown HLS stream quality?

Hi matrixebiz and jamilou,

Just relaying information from RokuJoel and personal experience:
1) The "0" setting tells the player to figure out what the bitrate is (adaptive) -- it's generally the recommended setting if your highest bitrate is over 1500 kbps. However, as noted in the HLS troubleshooting thread, you should set the stream bandwidth when < 1.5 mbps.
2) I'm not sure how stream quality is handled, but in the manifest if you set "ui_resolutions=fhd" only then all scaling would be automatically handled (if your translations are for an FHD TV, they will automatically be scaled down so you only have to develop for FHD). I would assume that stream quality would follow the same logic. If you have a SD and HD TV I would test on both to make sure! 
0 Kudos