Jump to content

Client side dynamic bitrate adjustment


jabbera

Recommended Posts

jabbera

I recently started sharing my library across multiple users most of whom are on remote networks. I'd really like clients to dynamically adjust the requested bitrate based upon the network congestion at the time. (Ala netflix) When the client starts to buffer I'd like them to switch to a lower quality. I realize that it would require a restart of the transcode, or starting a transcode in the case of Direct Stream. I also realize that there are lot of reasons for buffering that aren't strictly bandwidth related.

 

I spent some time browsing the code and there is a DynamicHlsService that seems to implement avialablility of multiple streams except it doesn't seem to use much logic for determining the available bitrates aside from variance and 2*variance. I also haven't found any obvious places where this functionality is used. Can someone point me in the right direction? Any ideas for clients that don't support HLS? If somehow progress reporting was fed back into the transcoding process, the server could detect this and lower the bitrate automatically and restart the transcode.

 

Thanks for your time!

Edited by jabbera
Link to comment
Share on other sites

adaptive bitrate streaming within HLS is how clients do it. the server returns three sources within the HLS playlist at varying btirates.

 

for the clients that don't support HLS, most of them support mpeg-dash which we'll soon incorporate. and that has the same type of thing.

Link to comment
Share on other sites

jabbera

I started reading the roku spec after I posted this and they automatically support it via HLS. How cool! Why only the 2 additional options for quality?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...