Streamlined delivery of video content
First Claim
1. A method comprising:
- receiving, by a computing device and from a user device, a first request for a content fragment;
based on a determination that a first portion of the content fragment is stored locally in the computing device, transmitting, by the computing device and to the user device, the first portion of the content fragment;
transmitting, by the computing device and to a server device, a second request for a second portion of the content fragment, wherein the first portion of the content fragment and the second portion of the content fragment are different portions of the content fragment;
determining, prior to receiving an entirety of the second portion of the content fragment from the server device, that a buffer, of the computing device, is filled;
transmitting, by the computing device and to the user device, and based on the determining that the buffer is filled, an initial received portion of the second portion of the content fragment, from the filled buffer; and
transmitting, by the computing device and to the user device, and after transmitting the initial received portion, an additional received portion of the second portion of the content fragment, wherein the initial received portion and the additional received portion are different portions of the second portion of the content fragment.
1 Assignment
0 Petitions
Accused Products
Abstract
A content delivery server may provide content to a requesting client device using a streamlined HTTP enhancement proxy delivery technique. For example, an HTTP proxy server may receive a request for video content or a fragment of video content from a client device. The request may be associated with a timeout scheduled to occur if no content has been received after a specified amount of time. The server may then transmit a request for the content to a remote server, such as an upstream cache server in the proxy server'"'"'s CDN. When the proxy server receives a portion of the requested content from the remote server, the proxy server begins transmitting the portion to the client device before the requested content has been completely received and buffered. The client device may then begin receiving data from the proxy server before timeout has occurred.
96 Citations
22 Claims
-
1. A method comprising:
-
receiving, by a computing device and from a user device, a first request for a content fragment; based on a determination that a first portion of the content fragment is stored locally in the computing device, transmitting, by the computing device and to the user device, the first portion of the content fragment; transmitting, by the computing device and to a server device, a second request for a second portion of the content fragment, wherein the first portion of the content fragment and the second portion of the content fragment are different portions of the content fragment; determining, prior to receiving an entirety of the second portion of the content fragment from the server device, that a buffer, of the computing device, is filled; transmitting, by the computing device and to the user device, and based on the determining that the buffer is filled, an initial received portion of the second portion of the content fragment, from the filled buffer; and transmitting, by the computing device and to the user device, and after transmitting the initial received portion, an additional received portion of the second portion of the content fragment, wherein the initial received portion and the additional received portion are different portions of the second portion of the content fragment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus comprising:
-
a buffer configured to store data; one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the apparatus to; receive, from a user device, a first request for a content fragment; determine that a first portion of the content fragment is stored locally in the apparatus; transmit, to the user device, the first portion of the content fragment; receive, from a server device, a second portion of the content fragment, wherein the first portion of the content fragment and the second portion of the content fragment are different portions of the content fragment; store a portion of the second portion of the content fragment in the buffer; prior to the apparatus receiving an entirety of the second portion of the content fragment from the server device and based on determining that the buffer is full, transmit, to the user device and from the full buffer, the portion of the second portion of the content fragment; determine whether an end of transmission indicator, of the second portion of the content fragment, has been received; and based on determining that the end of transmission indicator has not been received, transmit, to the user device, at least one additional portion of the second portion of the content fragment. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a user device; and a server device, wherein the server device comprises; a buffer configured to store data; one or more processors; and memory storing instructions that, when executed by the one or more processors, cause the server device to; receive, from the user device, a request for a content fragment; determine that a first portion of the content fragment is stored locally in the server device; transmit, to the user device, the first portion of the content fragment; receive, from a second server device, a second portion of the content fragment, wherein the first portion of the content fragment and the second portion of the content fragment are different portions of the content fragment; store a portion of the second portion of the content fragment in the buffer; prior to the server device receiving an entirety of the second portion of the content fragment from the second server device, and based on determining that the buffer is full, transmit, to the user device and from the full buffer, the portion of the second portion of the content fragment; determine whether an end of transmission indicator, of the second portion of the content fragment, has been received; and based on determining that the end of transmission indicator has not been received, transmit, to the user device, at least one additional portion of the second portion of the content fragment; and wherein the user device comprises; one or more processors; and memory storing instructions that, when executed by the one or more processors of the user device, cause the user device to; send the request for the content fragment; and receive the first portion of the content fragment, the portion of the second portion of the content fragment, and the at least one additional portion of the second portion of the content fragment. - View Dependent Claims (20, 21, 22)
-
Specification