Methods and Systems for HTTP Streaming Using an Intelligent HTTP Client
First Claim
Patent Images
1. A method for regulating the rate of data transmission for a data file, said method comprising:
- a) selecting first byte-range data to identify a first chunk of data in said data file;
b) determining a target transmission rate;
c) sending an HTTP Get Request requesting said first chunk of data identified with said first byte-range data;
d) receiving said first chunk of data in an HTTP Response;
e) storing said first chunk of data in a client buffer;
f) determining whether the actual transmission rate of said first chunk of data exceeds said target transmission rate;
g) waiting for a specific wait period and then selecting new byte-range data to identify another chunk of data in said data file if said actual transmission rate exceeds said target transmission rate;
h) immediately selecting next byte-range data to identify an untransmitted next chunk of data in said data file if said actual transmission rate does not exceed said target transmission rate;
i) sending an HTTP Get Request requesting said next chunk of data identified with said next byte-range data;
j) receiving said next chunk of data in an HTTP Response;
k) storing said next chunk of data in a client buffer;
l) determining whether the actual transmission rate of all transmitted chunks of data exceeds said target transmission rate;
m) waiting for a specific wait period when said actual transmission rate of all transmitted chunks exceeds said target transmission rate; and
n) selecting new next byte-range data to identify another untransmitted next chunk of data in said data file if said actual transmission rate of all transmitted chunks does not exceed said target transmission rate.
2 Assignments
0 Petitions
Accused Products
Abstract
Elements of the present invention relate to systems and methods for controlling the transmission rate of HTTP streaming processes with an intelligent HTTP client.
-
Citations
21 Claims
-
1. A method for regulating the rate of data transmission for a data file, said method comprising:
-
a) selecting first byte-range data to identify a first chunk of data in said data file; b) determining a target transmission rate; c) sending an HTTP Get Request requesting said first chunk of data identified with said first byte-range data; d) receiving said first chunk of data in an HTTP Response; e) storing said first chunk of data in a client buffer; f) determining whether the actual transmission rate of said first chunk of data exceeds said target transmission rate; g) waiting for a specific wait period and then selecting new byte-range data to identify another chunk of data in said data file if said actual transmission rate exceeds said target transmission rate; h) immediately selecting next byte-range data to identify an untransmitted next chunk of data in said data file if said actual transmission rate does not exceed said target transmission rate; i) sending an HTTP Get Request requesting said next chunk of data identified with said next byte-range data; j) receiving said next chunk of data in an HTTP Response; k) storing said next chunk of data in a client buffer; l) determining whether the actual transmission rate of all transmitted chunks of data exceeds said target transmission rate; m) waiting for a specific wait period when said actual transmission rate of all transmitted chunks exceeds said target transmission rate; and n) selecting new next byte-range data to identify another untransmitted next chunk of data in said data file if said actual transmission rate of all transmitted chunks does not exceed said target transmission rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for regulating the rate of data transmission for a data file with an HTTP client, said method comprising:
-
a) determining a media file bitrate, R; b) determining a media file duration, T; c) determining a client buffer size, D; d) determining a data chunk size, C; e) selecting first byte-range data to identify a first chunk of data in said data file; f) determining a target transmission rate, TR, with the equation;
TR=(1+(R*T)/(8*D))*Rg) determining a start time; h) sending an HTTP Get Request requesting said first chunk of data identified with said first byte-range data; i) receiving said first chunk of data in an HTTP/1.1 206 Response; j) storing said first chunk of data in a client buffer; k) determining a current time; l) determining an elapsed time by subtracting said start time from said current time; m) determining the number of bytes received in said first chunk of data; n) calculating the number of bits received in addition to that which would have been received at said target bitrate by subtracting the value obtained from multiplying said target bitrate by said elapsed time from the value obtained by multiplying the number of bytes received by the number of bits in a byte o) waiting for a specific wait period and then selecting new byte-range data to identify another chunk of data in said data file if said number of bits received in addition to that which would have been received at said target bitrate is greater than zero, wherein said specific wait period is calculated by dividing said number of bits received in addition to that which would have been received at said target bitrate by said target bitrate; and p) immediately selecting said next byte-range data to identify said untransmitted next chunk of data in said data file if said number of bits received in addition to that which would have been received at said target bitrate is not greater than zero. - View Dependent Claims (11, 12, 13)
-
-
14. A system for regulating the rate of data transmission for a data file, said apparatus comprising:
-
a) a bitrate determiner for determining a media file bitrate; b) a file duration determiner for determining a media file duration; c) a buffer determiner for determining a client buffer size; d) a size determiner for determining a data chunk size; e) a first byte-range selector for selecting first byte-range data to identify a first chunk of data in said data file; f) a target determiner for determining a target transmission rate; g) a sender for sending an HTTP Get Request requesting said first chunk of data identified with said first byte-range data; h) a data receiver for receiving said first chunk of data in an HTTP Response; i) a client buffer for storing said first chunk of data; j) a rate determiner for determining whether the actual transmission rate of said first chunk of data exceeds said target transmission rate; k) a delayer for waiting for a specific wait period and a selector for selecting new byte-range data to identify another chunk of data in said data file if said actual transmission rate exceeds said target transmission rate; and l) wherein said selector immediately selects said next byte-range data to identify said untransmitted next chunk of data in said data file if said actual transmission rate does not exceed said target transmission rate. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
Specification