Server side adaptive bit rate control for http streaming clients
US-2015381690-A1 · Dec 31, 2015 · US
US9686332B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9686332-B1 |
| Application number | US-201414577087-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 19, 2014 |
| Priority date | Dec 19, 2014 |
| Publication date | Jun 20, 2017 |
| Grant date | Jun 20, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Disclosed are various embodiments for a manifest generation service. A manifest generation service determines a bit rate for an on demand content stream to a client. A manifest is generated indicating a source for content at the determined bit rate. The bit rate is determined and manifests are generated repeatedly to adapt to changes in network conditions during the stream.
Opening claim text (preview).
Therefore, the following is claimed: 1. A non-transitory computer-readable medium embodying a program that, when executed in at least one computing device, causes the at least one computing device to at least: obtain, from a client device, a request to initiate a stream of a media item available via an on demand media distribution service, the media item being divided into a plurality of segments, each of the plurality of segments being embodied as a respective plurality of content fragments; obtain, from the client device, a state of a buffer of the client device; calculate an estimate of bandwidth for the client device based at least in part on the state of the buffer, a plurality of bit rates corresponding to a plurality of previously communicated content fragments of the media item, and a plurality of previously estimated bandwidths; calculate a confidence value for the estimate of bandwidth based at least in part on a standard deviation of the plurality of previously estimated bandwidths; select one of the respective plurality of content fragments as a function of the estimate of bandwidth and the confidence value; and communicate, to the client device, a manifest indicating a source of the one of the respective plurality of content fragments, the manifest excluding a remainder of the respective plurality of content fragments. 2. The non-transitory computer-readable medium of claim 1 , wherein the request is obtained, the estimate of bandwidth is calculated, the confidence value is calculated, the one of the respective plurality of content fragments is selected, and the manifest is communicated repeatedly during the stream of the media item. 3. The non-transitory computer-readable medium of claim 1 , wherein the one of the respective plurality of content fragments is further selected as a function of a purchase history, a viewing history, a region, a viewing preference, or a censorship preference associated with the client device. 4. A system, comprising: a data store configured to store a media item, the media item being divided into a plurality of segments, each of the plurality of segments being embodied as a respective plurality of content fragments; and at least one computing device communicatively coupled to the data store, the at least one computing device being configured to at least: calculate, during a stream of the media item to a client device, an estimate of bandwidth for the client device; select, based at least in part on the estimate of bandwidth, one of the respective plurality of content fragments; generate a manifest indicating a source of the one of the respective plurality of content fragments; and communicate the manifest to the client device. 5. The system of claim 4 , wherein the estimate of bandwidth is calculated, the one of the respective plurality of content fragments is selected, the manifest is generated, and the manifest is communicated repeatedly during the stream of the media item. 6. The system of claim 4 , wherein the estimate of bandwidth is based at least in part on at least one of an amount of content stored in a buffer of the client device, a rate of change of the amount of content stored in the buffer of the client device, or a size of a previously requested content portion of the media item communicated to the client device. 7. The system of claim 4 , wherein the estimate of bandwidth is based at least in part on a running average of a plurality of previously estimated bandwidths. 8. The system of claim 7 , wherein the running average comprises an exponentially weighted average. 9. The system of claim 4 , wherein the at least one computing device is further configured to at least: determine that an amount of content stored in a buffer of the client device has increased; and responsive to the amount of content stored in the buffer increasing select the one of the respective plurality of content fragments having a greater bit rate than a previously communicated content fragment of the media item. 10. The system of claim 4 , wherein the at least one computing device is further configured to at least calculate a confidence value for the estimate of bandwidth, wherein the one of the respective plurality of content fragments is selected based at least in part on the confidence value. 11. The system of claim 10 , wherein the estimate of bandwidth is calculated according to a plurality of data points, and the confidence value is based at least in part on a standard deviation of the plurality of data points. 12. The system of claim 10 , wherein the at least one computing device is further configured to at least select the one of the respective plurality of content fragments that corresponds to a bit rate less than the estimate of bandwidth responsive to the confidence value falling below a predefined threshold. 13. The system of claim 4 , wherein the one of the respective plurality of content fragments is selected based at least further in part on a purchase history, a viewing history, or a user profile associated with the client device. 14. A method, comprising: initiating, by at least one computing device, a stream of a media item stored in a data store accessible to the at least one computing device, the media item being divided into a plurality of segments, each of the plurality of segments being embodied as a respective plurality of content fragments; calculating, by the at least one computing device, an estimate of bandwidth for a client device; selecting, by the at least one computing device, as a function of the estimate of bandwidth, one of the respective plurality of content fragments; communicating, by the at least one computing device, an indication of a source of the one of the respective plurality of content fragments to the client device, the indication excluding a remainder of the respective plurality of content fragments; and repeatedly performing the calculating, the selecting, and the communicating during the stream of the media item to the client device. 15. The method of claim 14 , wherein calculating the estimate of bandwidth further comprises calculating, by the at least one computing device, the estimate of bandwidth as a running average of a plurality of previously estimated bandwidths. 16. The method of claim 15 , further comprising: calculating, by the at least one computing device, a confidence value for the estimate of bandwidth based at least in part on a standard deviation of the plurality of previously estimated bandwidths; and wherein the one of the respective plurality of content fragments is selected based at least further in part on the confidence value. 17. The method of claim 14 , wherein selecting the one of the respective plurality of content fragments further comprises selecting the one of the respective plurality of content fragments having a bit rate greater than the estimate of bandwidth responsive to an amount of content in a buffer of the client device meeting a predefined threshold. 18. The method of claim 14 , wherein the estimate of bandwidth is based at least in part on at least one of an amount of content stored in a buffer of the client device, a rate of change of the amount of content stored in the buffer of the client device, or a size of a previously requested content fragment of the media item communicated to the client device. 19. The method of claim 14 , wherein selecting the one of the respective plurality of content fragments further comprises selecting the one of the respective plurality of content fragments as having a bi
Electricity · mapped topic
adapting media to network capabilities · CPC title
Responding to QoS · CPC title
for unicast · CPC title
for the control of the source by the destination (control signals issued by the client directed to the server or network components specially adapted for selective content distribution H04N21/637) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.