Hi Everyone,
Has anyone ever seen Roku switch HLS video stream seamlessly ( while playing video ) from higher<-> lower bitrates. So far I have never seen this happen. I did notice Roku switching streams on re-buffer or choosing streams when playback starts, but I have never ever seen a “full-adaptation” seamless switch. If you did, can you post your roku model and content type?
Another question - anyone knows how can I control SwitchingStrategy programmatically? Any way to force Roku to start playing low quality bitrate and then switch to high quality?
Thanks everyone
By default, the device will start with the lower quality stream and move upward, as long as a obj.SwitchingStrategy=“full-adaptation”. Best to set the bitrate=[0] unless the highest bitrate is lower than 1500kbps, in which case you can use the lowest bitrate for the bitrate setting.
I see bitrate switching all the time when watching video at home and at the office, it is possible that if you have a high enough bandwidth internet connection you might not experience any bitrate switching.
Why are you specifying multiple HLS streams and multiple bitrates? That’s not how HLS works. You should be using a single variant bitrate playlist that references the individual bitrate playlists. Specifying multiple streams the way you are will most likely treat it the same as if you were specifying multiple MP4, which would require re-buffering when switching streams
According to the docs it is not the case, this is a legit way to declare multiple bitrates and stream-switching is supported. Anyways, this is just an example, I have posted a link to the manifest (containing individual streams) as well, you can just remove Streams variable and add “content” variable, but stream switching will not work either.
“Yuriy_OM” wrote:
According to the docs it is not the case, this is a legit way to declare multiple bitrates and stream-switching is supported.
Declaring multiple bitrates like that treats them as individual streams, so it can’t do seamless stream switching. That is typically for multiple MP4 streams. For HLS (or any of the other supported adaptive bitrate formats), it should be defined as a single stream, if you want seamless switching.
“Yuriy_OM” wrote:
Anyways, this is just an example, I have posted a link to the manifest (containing individual streams) as well, you can just remove Streams variable and add “content” variable, but stream switching will not work either.
I’m not seeing that link..?
How are you testing the stream switching? Are you throttling your network connection somehow to force it to switch down? It’ll only switch if there’s some sort of network congestion that warrants it.
Hi, here is the code with a single manifest ( contains 6 streams):
newContent = CreateObject("roSGNode", "ContentNode")
newContent.url= "http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8"
newContent.streamFormat = "hls"
newContent.maxBandwidth = 2640
newContent.SwitchingStrategy = "full-adaptation"
newContent.Live = true
m.video.content = newContent
m.video.control = "play"
I am trying to control stream switching using min/max bandwidth, also leaving it on for hours and logging into console. I have never seen roku switch, it always plays the last url in the manifest list. Please try it for yourself
“Yuriy_OM” wrote:
I am trying to control stream switching using min/max bandwidth, also leaving it on for hours and logging into console. I have never seen roku switch, it always plays the last url in the manifest list. Please try it for yourself
As noted in another thread, I don’t think Min/MaxBandwidth work in SceneGraph currently, but even if they did, they don’t control switching, only the minimum and maximum bitrates to allow switching to. To test the actual switching, you’d need to throttle your network connection somehow, perhaps by downloading something large on another device on the same network(?).
Stream 06 is the highest bitrate stream in that list. I don’t think it matters what order the streams are in. It’s just happens that it’s the last one. Can you re-order them in the playlist to confirm that it’s not just using the last stream? I know in firmware 6.x, HLS switching was changed, so that if your network connection supports it, you’d get a single segment of the lowest bitrate stream, with an immediate switch to the highest bitrate stream, so it’d be very difficult to see that switch.
Hi, I have tried all that. I was logging all play chunks to console for hours and hours, reordered streams, turned on large downloads on other devices on the network, but I never seen roku switch. Thus I am asking here if anyone else can test and confirm.
Bumping this issue.
Can anyone confirm any form of bit-stream switching within SceneGraph Video? I believe it simply does not work, I have never ever seen any bitstream switch.
Please try this stream, it has 4-5 bitrates: http://vevoplaylist-live.hls.adaptive.l … leman.m3u8
Ok, we have verified that SceneGraph is not switching streams. There should be a new 7.1 build coming (hopefully) soon with a fix for the failure to pass SwitchingStrategy to the playback subsystem.
Great news, at least it is verified now and fix is coming. Please let me know in what build I can expect this. Thanks!