I am having trouble getting HLS to work properly on Roku2. We are following the Roku 4.3 guide exactly to prepare our HLS. We are using Apple’s mediafilesegmenter and variantplaylistcreator to make our files. This method works perfectly on Roku1, it starts at the lowest bitrate and then quickly switches up to the highest bitrate seemlessly.
Roku2 starts at the lowest bitrate but never switches up to a higher bitrate. What is going on here? I have read where other people are having the same issue. Can anyone help me get HLS to work on Roku2?
Like I said I am using the Roku 4.3 guide step by step and I am using Apple’s segmenter and playlist creator. We are using FFmpeg to encode according the Roku 4.3 guide and using Apache2 for delivery.
Roku1 works perfectly seamlessly switching from low to high or high to low. Roku2 never switches. What has changed on Roku2 to cause this?
It should be noted that Roku2 only plays the first stream in the m3u8 file. I can reverse the stream order so that the highest rate is played first. Roku1 still switches like a champ starting at the lowest rate then switches up quickly. Roku2 only plays the first listed stream in the m3u8 file. Our streams work fine on other players like Iphone, jwplayer, flow player, etc. The only device that has issues is Roku2.
Is there some secret to fix Roku2. I read that Netflix, Hulu, and Crackle all had roku2 issues with HLS but it was fixed. Is there something that is not published about how to get this working?
I don’t understand why it works on Roku1 and not Roku2.
Make sure to set the SwitchingStrategy content metadata attribute. If none is set, it should use the default, but an issue was introduced in the 4.7 firmware that requires it to be explicitly set, otherwise it behaves as you describe.
“axiomy” wrote:
I have below the stream format and it still won’t switch. Any clues as to why?
Is that value getting set in your code? Just adding it to the XML isn’t sufficient unless your code is expecting that element to be there.
Thank you… I have a channel based off the the video player and we are just using it on xml. There is nothing in my code to point out adaptive. Do you know where I need to put it? Thanks again! I will put it in my code and report back.
I would like to add SwitchingStrategy: “full-adaptation” in my videoplayer code too. Where would I put it and what file? I do not use xml, my database is in mysql to get the shows.
Thanks, I will also have to test new files in various bitrates.
Update, Just encoded 3 bitrates to see it on Roku2 XS. I did a 360, 768 and 2000.
Watched it in 360kbps for about 20+ seconds and very pixelated before it switched to a higher rate and was clear, then switched to the 2000kbps. Works here. I used Sorenson Squeeze 7.0 to output hls and ftp’d to my web server.
DA
Initial tests with FFmpeg and Apple Segmenter worked on my Roku2 it switched up and down seamlessly. We did have one of our test roku2 box that didn’t want to switch. I am going to test it thoroughly and report back my findings with the Apple Segmenter vs. the Open Source Linux Segmenter.
Thank you so much for helping me override the 4.7 bug. When I take the switching strategy out on the XML it picks the closest stream but doesn’t switch seamlessly. When I add the code to my switching strategy .brs and xml it finally works as good as netflix. Thank you so much!!! I have been working on this for months! I was beginning to think even the Apple Segmenter wouldn’t work. Now if I can get the Open Source Linux Segmenter to work with out skipping forward or kicking back on volatile internet then things are perfect! If not, I guess I will be forced to use the Apple Segmenter until the Linux segmenter is updated.
I wanted to report back my findings on the Apple Segmenter vs Open Source Segmenter. Apple wins with no artifacts when switching. The original Ion-Cannon has random artifacts when switching and random kick backs to the menu, or skips forward. Google Code Segmenter same thing, artifacts when switching and random kickbacks. The midnox/httpsegmenter seem to work the best out of the open source I tested, although it does rarely skip a few frames when switching. The Apple Segmenter was the only one that was smooth as silk up or down.
Who wants to download all the content to an Apple and upload it after segmenting for each server in the server farm? Not me. I will use the apple only if i have to upload it locally. If its already on the server the Midnox Segmenter it is.
If you are having trouble getting HLS to switch on Roku2 without going to the loading screen follow this thread. I now have HLS running running from 500kbps to 3.2mbps… IT ROCKS!