Bit rate selection for streaming media

US10666698B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10666698-B1
Application numberUS-201414577096-A
CountryUS
Kind codeB1
Filing dateDec 19, 2014
Priority dateDec 19, 2014
Publication dateMay 26, 2020
Grant dateMay 26, 2020

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 service for selecting the bandwidth of a media stream. The service correlates the buffer state of a client with previously communicated portions of the stream. The service then determines a bit rate for subsequent portions of the stream. A manifest may be generated indicating a source for content at the determined bit rate.

First claim

Opening claim text (preview).

Therefore, the following is claimed: 1. A method, comprising: beginning, by at least one computing device, streaming of a media item, the media item comprising a plurality of content fragments; and during the streaming of the media item over time: obtaining, by the at least one computing device and from a client device, a respective state of a buffer of the client device corresponding to at least one size and at least one encoding bit rate attribute for a respective last requested content fragment, wherein the respective state of the buffer describes a respective duration of buffered content corresponding to the respective last requested content fragment transferred to the client device over time; updating, by the at least one computing device, a stream history to store the at least one encoding bit rate attribute and the at least one size for the respective last requested content fragment transferred to the client device over time; calculating, by the at least one computing device, an estimated bandwidth of a communications channel to the client device based at least in part on a correlation between the at least one encoding bit rate attribute and the at least one size stored in the stream history by the at least one computing device, and an effect on the respective state of the buffer of the client device while streaming the content fragments over time; calculating, by the at least one computing device, a confidence value associated with the estimated bandwidth; selecting, by the at least one computing device, a sequentially next content fragment of the streaming media item for the client device based at least in part on the estimated bandwidth, the confidence value, and an amount of buffered content; communicating, by the at least one computing device, a manifest file to the client device, the manifest file including a single resource locator of a plurality of resource locators associated with the sequentially next content fragment of the streaming media item for reference by the client device, the manifest file excluding a remainder of the plurality of resource locators based at least in part on a purchase history associated with a user of the client device; and updating, by the at least one computing device, the stream history to store at least one encoding bit rate attribute and at least one size for the sequentially next content fragment. 2. The method of claim 1 , wherein the confidence value is based at least in part on a standard deviation associated with the respective state of the buffer. 3. The method of claim 1 , wherein the sequentially next content fragment of the streaming media item is selected as having a bit rate less than the estimated bandwidth responsive to the confidence value falling below a predefined threshold. 4. The method of claim 1 , wherein the sequentially next content fragment of the streaming media item is selected based at least in part on a plurality of override rules corresponding to a device type. 5. The method of claim 1 , wherein the sequentially next content fragment of the streaming media item is selected as having a bit rate greater than the estimated bandwidth responsive to an estimated download time of the sequentially next content fragment of the streaming media item being less than or equal to a sum of a first duration of the sequentially next content fragment of the streaming media item and a second duration of at least a portion of the amount of buffered content. 6. A system, comprising: a memory configured to store computer-readable instructions; and at least one computing device configured, through execution of the computer-readable instructions, to: begin a stream of content on a client device, the stream of content comprising a plurality of content fragments; and following communication of individual last communicated content fragments of the plurality of content fragments during the stream of content over time: obtain, from the client device, a respective state of a buffer of the client device corresponding to a respective last communicated content fragment, wherein the respective state of the buffer describes a respective duration of buffered content corresponding to at least one size and at least one encoding bit rate attribute for the respective last communicated content fragment transferred to the client device during the stream of content over time; update a stream history to store the at least one encoding bit rate attribute and the at least one size for the respective last communicated content fragment transferred to the client device during the stream of content over time; calculate an estimated bandwidth of a communications channel to the client device based at least in part on a correlation between the at least one encoding bit rate attribute and the at least one size stored in the stream history at the at least one computing device, and an effect on the respective state of the buffer of the client device during the stream over time; select a sequentially next content fragment of the stream for the client device based at least in part on the estimated bandwidth of the client device and at least one fragment selection override rule associated with the client device; communicate a manifest file to the client device, the manifest file including a single resource locator of a plurality of resource locators associated with the sequentially next content fragment of the stream for reference by the client device, the manifest file excluding a remainder of the plurality of resource locators based at least in part on a purchase history associated with a user of the client device; and update the stream history to store at least one encoding bit rate attribute and at least one size for the sequentially next content fragment. 7. The system of claim 6 , wherein the at least one computing device is further configured to: calculate a confidence value associated with the estimated bandwidth based on a standard deviation with reference to at least one previously estimated bandwidth; and select the sequentially next content fragment of the stream based at least further in part on the confidence value. 8. The system of claim 7 , wherein the at least one computing device is further configured to calculate, as the confidence value, a standard deviation of a plurality of states of the buffer or a plurality of rates of change of the buffer. 9. The system of claim 6 , wherein the at least one computing device is further configured to: select the sequentially next content fragment of the stream as having a bit rate greater than a last selected bit rate for a previously requested content fragment of the stream responsive to a rate of increase of buffered data in the buffer of the client device meeting a first predefined threshold; and select the sequentially next content fragment of the stream as having a bit rate less than the last selected bit rate for the previously requested content fragment of the stream responsive to a rate of decrease of buffered data in the buffer of the client device meeting a second predefined threshold. 10. The system of claim 6 , wherein the at least one computing device is further configured to modify a selection of the sequentially next content fragment of the stream according to at least one override rule corresponding to a device type of the client device. 11. The system of claim 10 , wherein the at least one computing device is further configured to select the sequentially next content fragment of the stream as having a last selected bit rate. 12. The system of claim 10 , wherein: the sequentially next content fragment of the stream is associated with a first bit rate; and the at lea

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • 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

  • adapting media to network capabilities · CPC title

  • In-session procedures · CPC title

  • for unicast · 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 US10666698B1 cover?
Disclosed are various embodiments for a service for selecting the bandwidth of a media stream. The service correlates the buffer state of a client with previously communicated portions of the stream. The service then determines a bit rate for subsequent portions of the stream. A manifest may be generated indicating a source for content at the determined bit rate.
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 May 26 2020 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).