Dynamic generation of video manifest files
US-9613042-B1 · Apr 4, 2017 · US
US10708331B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10708331-B1 |
| Application number | US-201414577153-A |
| Country | US |
| Kind code | B1 |
| Filing date | Dec 19, 2014 |
| Priority date | Dec 19, 2014 |
| Publication date | Jul 7, 2020 |
| Grant date | Jul 7, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
adapting media to network capabilities · CPC title
Responding to QoS · CPC title
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.