a method determines an instance of content to be delivered to a client device.
In some embodiments, a method determines an instance of content to be delivered to a client device. The instance of content includes a plurality of segments that is associated with a plurality of profiles. A target metric and a bandwidth distribution are determined. The method determines a performance of the target metric based on the bandwidth distribution and a model for selecting a top profile for the plurality of segments. The model includes a set of conditions. The method solves the model based on the performance of the target metric where solving the model provides a solution that meets the set of conditions and outputs the top profile for each segment. The top profile for each segment for delivery to the client device. The top profile for each segment is used to remove profiles when requesting segments in the plurality of segments during playback of the instance of content.
BACKGROUND
In adaptive bitrate streaming, content is encoded in multiple profiles with different bitrates, qualities, or bitrates and qualities. Then, during playback, a media player may adaptively switch between the different profiles according to a condition, such as available bandwidth. However, not all the profiles may be necessary for all types of devices. For example, on some devices, such as smartphones with limited computing resources or smaller screens, users may not notice a quality improvement of selecting a profile with a very high bitrate. However, providing a very high bitrate may result in a higher risk of rebuffering where not enough content is available to meet the playback rate of the media player, a higher cost for users due to the delivery of cellular data, or a higher cost for a company that is transferring the data.
1. A method comprising: determining an instance of content to be delivered to a client device, wherein the instance of content includes a plurality of segments that is associated with a plurality of profiles; determining a target metric and a bandwidth distribution; determining a performance of the target metric based on the bandwidth distribution; determining a model for selecting a top profile for the plurality of segments, wherein the model includes a set of conditions; solving the model based on the performance of the target metric, wherein solving the model provides a solution that meets the set of conditions and outputs the top profile for each segment; and outputting the top profile for each segment for delivery to the client device, wherein the top profile for each segment is used to remove profiles when requesting segments in the plurality of segments during playback of the instance of content. ||
16. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for: determining an instance of content to be delivered to a client device, wherein the instance of content includes a plurality of segments that is associated with a plurality of profiles; determining a target metric and a bandwidth distribution; determining a performance of the target metric based on the bandwidth distribution; determining a model for selecting a top profile for the plurality of segments, wherein the model includes a set of conditions; solving the model based on the performance of the target metric, wherein solving the model provides a solution that meets the set of conditions and outputs the top profile for each segment; and outputting the top profile for each segment for delivery to the client device, wherein the top profile for each segment is used to remove profiles when requesting segments in the plurality of segments during playback of the instance of content. ||
20. An apparatus comprising: one or more computer processors; and a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable for: determining an instance of content to be delivered to a client device, wherein the instance of content includes a plurality of segments that is associated with a plurality of profiles; determining a target metric and a bandwidth distribution; determining a performance of the target metric based on the bandwidth distribution; determining a model for selecting a top profile for the plurality of segments, wherein the model includes a set of conditions; solving the model based on the performance of the target metric, wherein solving the model provides a solution that meets the set of conditions and outputs the top profile for each segment; and outputting the top profile for each segment for delivery to the client device, wherein the top profile for each segment is used to remove profiles when requesting segments in the plurality of segments during playback of the instance of content.