Live stream manifests for on demand content

US9686332B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9686332-B1
Application numberUS-201414577087-A
CountryUS
Kind codeB1
Filing dateDec 19, 2014
Priority dateDec 19, 2014
Publication dateJun 20, 2017
Grant dateJun 20, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • adapting media to network capabilities · CPC title

  • H04L65/80Primary

    Responding to QoS · CPC title

  • H04L65/612Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9686332B1 cover?
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.
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L65/4084. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 20 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).