Live stream manifests for on demand content

US9992249B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9992249-B2
Application numberUS-201715602261-A
CountryUS
Kind codeB2
Filing dateMay 23, 2017
Priority dateDec 19, 2014
Publication dateJun 5, 2018
Grant dateJun 5, 2018

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 requesting fragments of a media item. A latency to a media distribution service and bandwidth for a client are estimated. A time to request a subsequent fragment from the media item is determined. Sources for the fragment are scored and one of the sources is selected. The fragment is requested from the selected source.

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: determine at least one time interval associated with a client application obtaining a content fragment from a media distribution service; calculate an estimated latency to the media distribution service, based at least on the at least one time interval; determine a time to request a subsequent fragment of a media item based at least in part on the estimated latency; calculate a respective selection score for each of a plurality of sources for a stream of the media item; select one of the plurality of sources based at least in part on the respective selection scores; and send a request, to the one of the plurality of sources, for the subsequent fragment at the time to request. 2. The non-transitory computer-readable medium of claim 1 , wherein the program further causes the at least one computing device to at least: calculate a confidence value for the estimated latency; and modify the estimated latency based at least in part on the confidence value. 3. The non-transitory computer-readable medium of claim 2 , wherein calculating the confidence value comprises calculating a standard deviation as a function of at least one of a plurality of time intervals used to calculate the estimated latency or a plurality of previously calculated estimated latencies. 4. The non-transitory computer-readable medium of claim 1 , wherein the time interval is between a first time when a previous request for a prior content fragment was sent and a second time when the prior content fragment began downloading. 5. The non-transitory computer-readable medium of claim 4 , wherein the program further causes the at least one computing device to at least: determine a second time interval between a third time when a second previous request for a second prior content fragment was sent and a fourth time when the second prior content fragment began downloading; and calculate an aggregate interval value by determining a running average of at least the time interval and the second time interval, wherein the estimated latency is calculated based at least in part on the aggregate interval value. 6. The non-transitory computer-readable medium of claim 4 , wherein the running average comprises an exponentially weighted average. 7. The non-transitory computer-readable medium of claim 1 , wherein the program further causes the at least one computing device to at least calculate an estimated bandwidth corresponding to a network connection of the at least one computing device, wherein the time to request the subsequent fragment of the media item is further based at least in part on the estimated bandwidth. 8. A system, comprising: a memory; and at least one computing device in communication with the memory, the at least one computing device being configured to at least: determine at least one time interval associated with a client application obtaining a content fragment from a media distribution service; calculate an estimated latency to the media distribution service, based at least on the at least one time interval; calculate an estimated bandwidth corresponding to a network connection of the at least one computing device; determine a time to request a subsequent fragment of a media item based at least in part on the estimated latency and the estimated bandwidth; and send a request for the subsequent fragment at the time to request. 9. The system of claim 8 , wherein the media item is divided into a plurality of segments, each of the plurality of segments being embodied as a respective plurality of content fragments and the subsequent fragment corresponds to one of the respective plurality of content fragments corresponding to one of the plurality of segments. 10. The system of claim 8 , wherein the at least one computing device is further configured to at least determine a time to download a previous content fragment and a size of the previous content fragment, wherein the estimated bandwidth is based at least in part on the time to download the previous content fragment and the size of the previous content fragment. 11. The system of claim 8 , wherein the at least one computing device is further configured to at least: calculate a confidence value for the estimated bandwidth; and modify the estimated bandwidth based at least in part on the confidence value. 12. The system of claim 11 , wherein calculating the confidence value comprises calculating a standard deviation as a function of a plurality of previously calculated estimated bandwidths. 13. The system of claim 11 , wherein the at least one computing device is further configured to at least determine that the confidence value falls below a threshold value, wherein modifying the estimated bandwidth comprises reducing the estimated bandwidth responsive to the confidence value failing below the threshold value. 14. A method, comprising: determining, by at least one computing device, at least one time interval associated with a client application obtaining a content fragment from a media distribution service; calculating, by the at least one computing device, an estimated latency and an estimated bandwidth associated with the at least one computing device, the estimated latency based at least one the at least one time interval; determining, by the at least one computing device, a time to request a subsequent fragment of a media item based at least in part on the estimated latency and the estimated bandwidth; calculating, by the at least one computing device, selection scores for a plurality of media sources based at least in part on whether individual ones of the plurality of sources satisfy at least one selection rule; selecting, by the at least one computing device, one of the plurality of sources based at least in part on the selection scores; and requesting, by the at least one computing device, the subsequent fragment at the time to request from the media distribution service. 15. The method of claim 14 , further comprising applying, by the at least one computing device, the at least one selection rule to at least one of the estimated latency, the estimated bandwidth, or a current state of a buffer. 16. The method of claim 14 , further comprising determining, by the at least one computing device, that the at least one selection rule is satisfied based at least in part on an estimated time to send a request to a respective source and download the subsequent fragment meeting a predefined time threshold. 17. The method of claim 14 , further comprising: projecting, by the at least one computing device, a duration of the media item stored in a buffer after downloading the subsequent fragment; and determining, by the at least one computing device, that the at least one selection rule is satisfied based at least in part on the duration of the media item projected to be stored in the buffer meeting a predefined threshold. 18. The method of claim 14 , wherein selecting the one of the plurality of sources further comprises: determining a subset of the plurality of sources with the selection scores exceeding a threshold; and selecting one of the subset of the plurality of sources corresponding to a highest quality level. 19. The method of claim 18 , wherein the highest quality level corresponds to at least one of a highest bit rate or a highest resolution. 20. The me

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • adapting media to network capabilities · 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

  • H04L65/612Primary

    for unicast · CPC title

  • H04L65/80Primary

    Responding to QoS · 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 US9992249B2 cover?
Disclosed are various embodiments for requesting fragments of a media item. A latency to a media distribution service and bandwidth for a client are estimated. A time to request a subsequent fragment from the media item is determined. Sources for the fragment are scored and one of the sources is selected. The fragment is requested from the selected source.
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 05 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).