Adaptive bitrate streaming
AssigneeComcast Cable Communications, LLC
InventorsPhilip John Stroffolino, Jaikumar Subramanian
Life of this patent
Estimating the term…
Abstract
Systems and methods are described for performing adaptive bitrate (ABR) streaming. A user device may request a segment of a first version of a plurality of versions of a content asset from a content provider, and may receive the segment. An estimated time to receive a second segment of a second version of the content may be determined based on metrics associated with receipt of the segment of the first version and in a manner that takes into account latency with the network, such that a determination whether to switch to a higher or lower bitrate version of a content asset during ABR streaming may be more accurately made.
Claims57
An apparatus comprising:
- one or more processors;
- and
- memory storing computer executable instructions that, when executed, cause:
- receiving, based on a request for a segment of a first version of a plurality of versions of content, the segment;
- determining, based on an amount of time from a sending of the request for the segment to receiving at least a first portion of the segment, a latency associated with the receiving the at least the first portion of the segment;
- determining a total time to receive the segment;
- determining, based on a removal of the latency from the total time, an estimated time to receive a second segment of a second version of the content;
- and
- determining, based on the estimated time to receive the second segment of the second version of the content satisfying a threshold, to send a request for the second segment of the second version of the content.
An apparatus comprising:
- one or more processors;
- and
- memory storing computer executable instructions that, when executed, cause:
- sending, to a content provider, a request for a segment of a first version of a plurality of versions of content;
- receiving, based on the request, the segment of the first version of the content;
- determining a first time from the sending the request to receiving at least a first portion of the segment;
- determining a second time from the receiving the at least a first portion of the segment to receiving an end portion of the segment;
- determining, based on the first time and the second time, an estimated time to receive a second segment of a second version of the content;
- and
- determining, based on the estimated time to receive the second segment of the second version of the content satisfying a threshold, to send a request for the second segment of the second version of the content.
A computer-readable medium storing instructions that, when executed, cause:
- receiving, based on a request for a segment of a first version of a plurality of versions of content, the segment;
- determining, based on an amount of time from a sending of the request for the segment to receiving at least a first portion of the segment, a latency associated with the receiving the at least the first portion of the segment;
- determining a total time to receive the segment;
- determining, based on a removal of the latency from the total time, an estimated time to receive a second segment of a second version of the content;
- and
- determining, based on the estimated time to receive the second segment of the second version of the content satisfying a threshold, to send a request for the second segment of the second version of the content.
A computer-readable medium storing instructions that, when executed, cause:
- sending, to a content provider, a request for a segment of a first version of a plurality of versions of content;
- receiving, based on the request, the segment of the first version of the content;
- determining a first time from the sending the request to receiving at least a first portion of the segment;
- determining a second time from the receiving the at least a first portion of the segment to receiving an end portion of the segment;
- determining, based on the first time and the second time, an estimated time to receive a second segment of a second version of the content;
- and
- determining, based on the estimated time to receive the second segment of the second version of the content satisfying a threshold, to send a request for the second segment of the second version of the content.
A system comprising:
- a content provider configured to provide a plurality of versions of content;
- and
- a computing device configured to:
- receive, from the content provider and based on a request for a segment of a first version of the plurality of versions of content, the segment;
- determine, based on an amount of time from a sending of the request for the segment to receiving at least a first portion of the segment, a latency associated with the receiving the at least the first portion of the segment;
- determine a total time to receive the segment;
- determine, based on a removal of the latency from the total time, an estimated time to receive a second segment of a second version of the content;
- and
- determine, based on the estimated time to receive the second segment of the second version of the content satisfying a threshold, to send a request for the second segment of the second version of the content.
A system comprising:
- a content provider;
- and
- a computing device configured to:
- send, to the content provider, a request for a segment of a first version of a plurality of versions of content;
- receive, based on the request, the segment of the first version of the content;
- determine a first time from the sending the request to receiving at least a first portion of the segment;
- determine a second time from the receiving the at least a first portion of the segment to receiving an end portion of the segment;
- determine, based on the first time and the second time, an estimated time to receive a second segment of a second version of the content;
- and
- determine, based on the estimated time to receive the second segment of the second version of the content satisfying a threshold, to send a request for the second segment of the second version of the content.
Dependencies are inferred from the claim text.