Hi Joel,
Couple of questions for you:
1. When you see bitrate switching, do you see a seamless switch or video->buffering->other quality video?
2. Do you see bitrate switching on video player implemented by SceneGraph Video component or roVideoPlayer? ( I am working with SceneGraph video component)
3. Are you seeing bitrate switching on live or on demand content?
I have tried absolutely everything (in SceneGraph) and I have never seen bitrate switch when playing from m3u8 manifest or when specifying video streams within streams array. Here is the example included with VEVO live stream in multiple bitrates. The player will always start playing the last stream in the array ( 06 in this case) and will never switch. Setting bitrate to "0" does not do anything either. When playing from main manifest (
http://vevoplaylist-live.hls.adaptive.l ... leman.m3u8), I have never seen bitrate switching either. This was done from multiple locations on multiple internet connections, while usually the connection is good, I doubt after so many hours of watching I would never see bitrate switch, my take is - it just does not work. I have tried absolutely everything to "force-switch" or force Roku to play lower bitrate, but with no success.
Any suggestions? Can it be that bitrate switching works in roVideoPlayer but does not work in SceneGraph? If so, what are my options as my project is built using SceneGraph and roVideoPlayer can not be used within SceneGraph node on the same screen.
newContent = CreateObject("roSGNode", "ContentNode")
newContent.streams=[{ url : "http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/03/prog_index.m3u8",
bitrate : 1060,
contentid : "03",
quality: false
},
{ url : "http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/05/prog_index.m3u8",
bitrate : 2640,
contentid : "05" ,
quality: true
},
{url : "http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/06/prog_index.m3u8",
bitrate : 4000,
contentid : "06" ,
quality: true
}]
newContent.streamFormat = "hls"
newContent.maxBandwidth = 2640
newContent.SwitchingStrategy = "full-adaptation"
newContent.Live = true
m.video.content = newContent
m.video.ObserveField("errorMsg", "checkErrors")
m.video.ObserveField("bufferingStatus", "buffStat")
m.video.ObserveField("streamingSegment", "showBitrate")
m.video.ObserveField("duration", "checkPosition")
m.video.control = "play"