Generating requests for streaming media

US11190566B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11190566-B1
Application numberUS-202016861411-A
CountryUS
Kind codeB1
Filing dateApr 29, 2020
Priority dateDec 19, 2014
Publication dateNov 30, 2021
Grant dateNov 30, 2021

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, via a computing device, during a stream of a media item to the computing device, an estimated latency between the computing device and an origin of the stream of the media item; calculating, via the computing device, an estimated bandwidth of a communications channel between the origin and the at least once computing device; determining, via the computing device, a time to communicate a request for a sequentially next content fragment of the stream as a function of the estimated bandwidth and the estimated latency; calculating, via the computing device, a confidence value for the estimated latency; modifying, via the computing device, the time to communicate the request responsive to the confidence value falling below a predefined threshold; and communicating, via the computing device, the request to a media distribution service at the time to communicate the request. 2. The method of claim 1 , further comprising calculating, via the computing device, 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. 3. The method of claim 2 , further comprising calculating, via the computing device, the time to communicate the request as a function of the estimated completion time as offset by the estimated latency. 4. The method of claim 1 , wherein calculating the confidence value further comprises calculating the confidence value as a standard deviation of the estimated latency and at least one previously calculated latency. 5. The method of claim 1 , wherein the estimated latency is calculated based at least in part on two previously calculated latencies. 6. The method of claim 1 , further comprising selecting, via the computing device, a bit rate associated with the sequentially next content fragment of the stream based at least in part on the estimated latency, the estimated bandwidth, and an amount of currently buffered content. 7. The method of claim 1 , further comprising determining, via the computing device for individual ones of a plurality of content fragment sources, a respective degree to which a respective one of the plurality of content fragment sources satisfies a plurality of rules. 8. The method of claim 7 , further comprising selecting, via the computing device, the sequentially next content fragment as associated with a subset of the plurality of content fragment sources having a respective degree above a predefined threshold. 9. A system, comprising: at least one computing device comprising a processor and a memory; and machine-readable instructions stored in the memory that, when executed by the processor, cause the at least one computing device to at least: calculate, during a stream of a media item to the at least one computing device, an estimated latency between the at least one computing device and an origin of the stream of the media item; calculate an estimated bandwidth of a communications channel between the origin and the at least one computing device; determine a time to communicate a request for a sequentially next content fragment of the stream as a function of the estimated bandwidth and the estimated latency; calculate a confidence value for the estimated latency; modify the time to communicate the request responsive to the confidence value falling below a predefined threshold; and communicate the request to a media distribution service at the time to communicate the request. 10. The system of claim 9 , wherein the machine-readable instructions, when executed by the processor, further cause the at least one computing device 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 time to communicate the request as a function of the estimated completion time as offset by the estimated latency. 11. The system of claim 9 , wherein the machine-readable instructions that cause the at least one computing device to calculate the confidence value further cause the at least one computing device to calculate the confidence value as a standard deviation of the estimated latency and at least one previously calculated latency. 12. The system of claim 9 , wherein the estimated latency is calculated based at least in part on at least two previously calculated latencies. 13. The system of claim 9 , wherein the machine-readable instructions, when executed by the processor, further cause the at least one computing device to at least select a bit rate associated with the sequentially next content fragment of the stream based at least in part on the estimated latency, the estimated bandwidth, and an amount of currently buffered content. 14. The system of claim 9 , wherein the machine-readable instructions, when executed by the processor, further cause the at least one computing device to at least: determine, for individual ones of a plurality of content fragment sources, a respective degree to which a respective one of the plurality of content fragment sources satisfies a plurality of rules; and select the sequentially next content fragment as associated with a subset of the plurality of content fragment sources having the respective degree above a predefined threshold. 15. The system of claim 14 , wherein the one of the plurality of content fragment sources is selected from the subset of the plurality of content fragment sources as being associated with a highest quality level. 16. The system of claim 9 , wherein the machine-readable instructions, when executed by the processor, further cause the at least one computing device to at least communicate the request in response to a completion of a download of a currently downloading portion of the stream before the time to communicate the request. 17. The system of claim 9 , wherein the machine-readable instructions that cause the at least one computing device to calculate the estimated bandwidth further cause the at least one computing device to calculate the estimated bandwidth as a function of at least one time to download at least one respective previously downloaded content fragment of the stream and at least one size of the at least one respective previously downloaded content fragment of the stream indicated in a manifest. 18. The system of claim 9 , wherein the machine-readable instructions, when executed by the processor, further cause the at least one computing device to at least modify the time to communicate the request by a predefined offset. 19. A non-transitory computer-readable medium comprising machine-readable instructions that, when executed by a processor of a computing device, cause the computing device to at least: calculate, during a stream of a media item to the at least one computing device, an estimated latency between the at least one computing device and a media distribution service facilitating the stream of the media item, the estimated latency being based at least in part on at least one time interval between at least one communication of at least one previously communicated request and at least one beginning of a respective at least one download of a corresponding content fragment; calculate an estimated bandwidth for the at least one computing device based at least in part on a plurality o

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 US11190566B1 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 Nov 30 2021 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 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).