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: 
dynamitemedia
Binge Watcher

adaptive mp4 streams

we want to implement adaptive streaming of the Videos from the Gofight library. which are encoded at normally 4 different bitrates 500,1000, 2000, 4000K

will roku pick the highest quality? I know this works with HLS streaming but i have read somewhere here before that people were having issues with it only working with HLS.

does roku give us a "highest" bit rate and pass us that number so we can give the user the Highest quality?

Is the array of URLS (from page 14 of component reference) only for a list of video to play one after another or can this be used for picking the best or highest bitrate allowed to eash user?

Thanks and Merry Christmas to everyone!!
Twitter: iptvmyway facebook: iptvmyay
Channels: Warriors of War, Go Fight Live, Heading Outdoorz, IPTVmyway
0 Kudos
13 REPLIES 13
RokuMarkn
Visitor

Re: adaptive mp4 streams

The array of URLs are assumed to be different encodings of the same video. (It is NOT a playlist -- only one URL will be played.) The player will automatically pick the best one that can be played. You don't have to do anything to make this happen other than provide the list of URLs and corresponding bitrates.

--Mark
0 Kudos
dynamitemedia
Binge Watcher

Re: adaptive mp4 streams

thanks!
Twitter: iptvmyway facebook: iptvmyay
Channels: Warriors of War, Go Fight Live, Heading Outdoorz, IPTVmyway
0 Kudos
streamingguy
Visitor

Re: adaptive mp4 streams

We are trying to use adaptive bitrate MP4 for our VOD content and the streams are encoded at 800kbps, 1500kbps and 2200kbps. Eventhough we defined all three different bitrates, ROKU is always picking up 2200kbps stream.

Due to this, there is a lot of buffering in initial load. Is it possible to load 800kbps first and then the rest based on the available bandwidth?

When the users use trick play, the same buffering issue is happenning and they need to wait few seconds to load.

We just want to load low resolution stream initially similar to Netflix.

Thanks
0 Kudos
RokuMarkn
Visitor

Re: adaptive mp4 streams

There will be buffering when switching between different MP4 streams. MP4 is not an adaptive format like HLS. HLS can change to a different bitrate on the fly (without interrupting the video) but MP4 requires stopping the current stream and starting the new one.

--Mark
0 Kudos
streamingguy
Visitor

Re: adaptive mp4 streams

Hello Mark,

Thank you for your reply!

Is it possible to force the ROKU to start with lower bitrate MP4 stream? I just want to simulate what Netflix is doing.
0 Kudos
RokuMarkn
Visitor

Re: adaptive mp4 streams

No, but I don't think you'd want to do that even if it were possible. You'd start with an 800kbps stream and then when you were ready to move up to a higher stream, it would rebuffer at that point. Netflix uses a true adaptive protocol so they can upshift without stopping the video but MP4 can't do that.

--Mark
0 Kudos
streamingguy
Visitor

Re: adaptive mp4 streams

Thank you. Point is clear now - even if I pick 800kbps stream first, I will get buffering when it shifts to other bitrate.

Sorry to drag this - "Netflix uses a true adaptive protocol so they can upshift without stopping the video but MP4 can't do that" - Do you mean they use HLS? If so, how they are getting BIF feature?

OR Is it special protocol developed by Netflix?
0 Kudos
bandal
Visitor

Re: adaptive mp4 streams

Based upon this discussion, looks like I will stick with HLS for most all my content.
0 Kudos
streamingguy
Visitor

Re: adaptive mp4 streams

I initially tried with HLS streams. But, only have 2 issues with that:

1. Users want to see the frame thumbnails when they are using trick play.
2. Not able to find suitable encoder for DD/DD+ audio with HLS. Many of the encoders are supporting only stereo. If we get it working somehow through other methods, the frames are not aligned correctly.

I have been searching for a good solution from past 2 months, but I couldn't come to a conclusion 😞
0 Kudos