Generating requests for streaming media

US10708331B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10708331-B1
Application numberUS-201414577153-A
CountryUS
Kind codeB1
Filing dateDec 19, 2014
Priority dateDec 19, 2014
Publication dateJul 7, 2020
Grant dateJul 7, 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 client application for streaming media. The client application estimates the bandwidth of the client and the latency between the client and a media distribution service. A bit rate for a media stream is determined using the latency, a buffer state, and the estimated bandwidth. A time to send the request is determined using the estimated bandwidth and latency.

First claim

Opening claim text (preview).

Therefore, the following is claimed: 1. A method, comprising: calculating, by at least one computing device, an estimated bandwidth for a communications channel corresponding to a media distribution service streaming a media item to a client, wherein the calculating is as a function of at least one size of at least one previously downloaded content fragment of the streaming media item and at least one time to download the at least one previously downloaded content fragment of the streaming media item; calculating, by the at least one computing device, a confidence value associated with the estimated bandwidth based at least in part on a standard deviation of a plurality of previously estimated bandwidths; determining, by the at least one computing device, a plurality of content fragment sources for a sequentially next content fragment of the streaming media item, wherein each of the plurality of content fragment sources specifies a network location for the sequentially next content fragment; determining, by the at least one computing device, an effect on a buffer state of the client that downloading a fragment from each of the plurality of content fragment sources would have based at least in part on correlating the buffer state of the client with a stream history; selecting, by the at least one computing device, one content fragment source from the plurality of content fragment sources for the sequentially next content fragment of the streaming media item based at least in part on the estimated bandwidth, the confidence value, and the effect on the buffer state of the client, wherein the sequentially next content fragment of the streaming media item has a different size than at least one previously downloaded content fragment; generating, by the at least one computing device, a manifest indicating the one content fragment source, wherein the manifest excludes at least one content fragment source of the plurality of content fragment sources; communicating, by the at least one computing device, the manifest to the client; and subsequent to the sequentially next content fragment being streamed from the media distribution service, calculating, by the at least one computing device, a second estimated bandwidth for the communications channel based at least in part on the different size of the sequentially next content fragment of the streaming media item and a time to download the sequentially next content fragment of the streaming media item. 2. 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. 3. The method of claim 1 , further comprising reselecting the sequentially next content fragment of the streaming media item based at least in part on a plurality of override rules. 4. The method of claim 3 , wherein one of the plurality of override rules specifies that a bit rate corresponding to a stream cannot change by a delta that meets or exceeds a predefined threshold. 5. The method of claim 1 , wherein the sequentially next content fragment of the streaming media item is selected based at least in part on at least one latency between the media distribution service streaming the media item and the client. 6. The method of claim 5 , further comprising calculating, by the at least one computing device, the latency as a function of at least one time of at least one previously communicated response and at least one time of sending at least one corresponding requested content fragment of the streaming media item. 7. The method of claim 6 , wherein the confidence value is a first confidence value, the latency is further calculated as a function of a plurality of previously calculated latencies, and the method further comprises: calculating, by the at least one computing device, a second confidence value as a function of the plurality of previously calculated latencies; and wherein selecting the sequentially next content fragment of the streaming media item is further based at least in part on the second confidence value. 8. The method of claim 1 , further comprising selecting, by the at least one computing device, a bit rate associated with a second sequentially next content fragment of the streaming media item based at least in part on the second estimated bandwidth. 9. A system, comprising: a data store; and at least one computing device communicably coupled to the data store, the at least one computing device being configured to at least: calculate an estimated bandwidth for a communications channel corresponding to a media distribution service streaming a media item to a client, wherein the calculating is as a function of at least one size of at least one previously downloaded content fragment of a stream of a streaming media item and at least one time to download the at least one previously downloaded content fragment of the streaming media item; calculate a confidence value associated with the estimated bandwidth based at least in part on a standard deviation of a plurality of previously estimated bandwidths; determine a plurality of content fragment sources for a sequentially next content fragment of the streaming media item, wherein each of the plurality of content fragment sources specifies a network location for the sequentially next content fragment; determine an effect on a buffer state of the client that downloading a fragment from each of the plurality of content fragment sources would have based at least in part on correlating the buffer state of the client with a stream history; select one content fragment source from the plurality of content fragment sources for a sequentially next content fragment of the streaming media item based at least in part on the estimated bandwidth, the confidence value, and the effect on the buffer state of the client, wherein the sequentially next content fragment of the streaming media item has a different size than the previously downloaded content fragment; generate a manifest indicating the one content fragment source, wherein the manifest excludes at least one content fragment source of the plurality of content fragment sources; and communicate the manifest to the client; and subsequent to the sequentially next content fragment being streamed from the media distribution service, calculate a second estimated bandwidth for the communications channel based at least in part on the different size of the sequentially next content fragment of the streaming media item and a time to download the sequentially next content fragment of the streaming media item. 10. The system of claim 9 , wherein the at least one computing device is further configured to at least: calculate, during the stream of the streaming media item from the media distribution service, an estimated latency between the media distribution service and the client; and determine a time for the client to communicate a request for the sequentially next content fragment of the stream as a function of the estimated bandwidth and the estimated latency, wherein the sequentially next content fragment of the streaming media item is selected based at least in part on the client communicating the request to a media distribution service at the time. 11. The system of claim 10 , wherein the at least one computing device is further configured to at least: calculate an estimated completion time for a download of a currently downloading content fragment of the stream based at least in part on the estimated bandwidth and a size of the currently downloading content fragment of the stream; and calculate the estimated

Assignees

Inventors

Classifications

  • adapting media to network capabilities · CPC title

  • H04L65/80Primary

    Responding to QoS · CPC title

  • H04L65/762Primary

    at the source  (reformatting of additional data in video distribution servers H04N21/2355) · 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

  • Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP] · 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 US10708331B1 cover?
Disclosed are various embodiments for a client application for streaming media. The client application estimates the bandwidth of the client and the latency between the client and a media distribution service. A bit rate for a media stream is determined using the latency, a buffer state, and the estimated bandwidth. A time to send the request is determined using the estimated bandwidth and late…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L65/80. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 07 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).