Adaptive progressive download
First Claim
1. A method of streaming data over a network, the method comprising:
- at an adaptive progressive server which streams content to a user playback equipment, dividing data packets of an intercepted content stream into epochs of contiguous data such that content of each epoch can be independently transrated for transfer over a network as part of a temporally ordered content stream, the epochs including a current epoch;
at the adaptive progressive server which streams content to the user playback equipment, determining a bit rate available on the network for transferring the current epoch from the adaptive progressive server to the user playback equipment;
at the adaptive progressive server which streams content to the user playback equipment, estimating a temporal amount of the content stream that is buffered at the user playback equipment to which the content stream is being transferred, wherein the estimating is based at least in part on (a) the bit rate available on the network, as determined by the adaptive progressive server, and (b) an encoding bit rate of the intercepted content stream, as determined by the adaptive progressive server; and
at the adaptive progressive server which streams content to the user playback equipment, controlling the transfer of the content stream over the network in accordance with the temporal amount of buffered content stream estimated by the adaptive progressive server, and trans-rating in real time one or more epochs from a first bitrate to a second, lower, bitrate to reduce an average video bitrate to a level suitable for transport with current network conditions.
2 Assignments
0 Petitions
Accused Products
Abstract
Data packets to be transferred over a network as part of a temporally ordered content stream are obtained by an adaptive progressive download (APD) server. The APD server divides the data packets of the content stream into epochs of contiguous data, the epochs including a current epoch. The APD server determines a bit rate available on the network for transferring the current epoch and calculates an estimate of a playback time of the content stream buffered at a computer to which the content stream is being transferred and played back. The calculation of the estimate is based at least in part on the bit rate available on the network and an encoding bit rate of the content stream. The APD server controls the transfer of the content stream over the network in accordance with the estimated playback time.
-
Citations
20 Claims
-
1. A method of streaming data over a network, the method comprising:
-
at an adaptive progressive server which streams content to a user playback equipment, dividing data packets of an intercepted content stream into epochs of contiguous data such that content of each epoch can be independently transrated for transfer over a network as part of a temporally ordered content stream, the epochs including a current epoch; at the adaptive progressive server which streams content to the user playback equipment, determining a bit rate available on the network for transferring the current epoch from the adaptive progressive server to the user playback equipment; at the adaptive progressive server which streams content to the user playback equipment, estimating a temporal amount of the content stream that is buffered at the user playback equipment to which the content stream is being transferred, wherein the estimating is based at least in part on (a) the bit rate available on the network, as determined by the adaptive progressive server, and (b) an encoding bit rate of the intercepted content stream, as determined by the adaptive progressive server; and at the adaptive progressive server which streams content to the user playback equipment, controlling the transfer of the content stream over the network in accordance with the temporal amount of buffered content stream estimated by the adaptive progressive server, and trans-rating in real time one or more epochs from a first bitrate to a second, lower, bitrate to reduce an average video bitrate to a level suitable for transport with current network conditions. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of streaming data over a network, the method comprising:
-
at a Deep Packet Inspection (DPI) router that routes packets of audio/video content to a user playback equipment, intercepting data packets being transferred over the network, identifying that the data packets are part of a temporally ordered content stream, and forwarding the temporally ordered content stream to a demultiplexing subsystem of an adaptive progressive server; at said adaptive progressive server that routes packets of audio/video content to the user playback equipment, dividing the intercepted data packets of the content stream into epochs of contiguous data, the epochs including a current epoch, wherein the dividing comprises dividing the intercepted data packets into epochs such that each epoch corresponds to approximately five to seven seconds of audio/video content; at said adaptive progressive server that routes packets of audio/video content to the user playback equipment, determining a bit rate available on the network for transferring the current epoch; at said adaptive progressive server that routes packets of audio/video content to the user playback equipment, estimating a temporal amount of the content stream that is buffered at the user playback equipment to which the content stream is being transferred, wherein the estimating at said adaptive progressive server is based at least in part on cal the bit rate available on the network, as determined by the adaptive progressive server, and (b) an encoding bit rate of the content stream, as determined by the adaptive progressive server; and at said adaptive progressive server, estimating that the temporal amount of the content stream that is buffered at the user playback equipment is above a threshold, and slowing transfer of the current epoch over the network toward said user playback equipment. - View Dependent Claims (7)
-
-
8. A system for streaming data over a network, the system comprising:
-
a controller connected between a hosting web server that hosts audio/video content and a user playback equipment, wherein the controller (A) divides data packets of an intercepted content stream into epochs of contiguous data such that content of each epoch can be independently transrated for transfer over a network as part of a temporally ordered content stream, the epochs including a current epoch, (B) determines a bit rate available on the network for transferring the current epoch from said controller to the user playback equipment, and (C) estimates a temporal amount of the content stream that is buffered at the user playback equipment to which the content stream is being transferred, by taking into account at least (a) the bit rate available on the network, as determined by said controller, and (b) an encoding bit rate of the intercepted content stream, as determined by said controller; and a delivery interface that (i) controls the transfer of the intercepted content stream over the network toward the user playback equipment in accordance with the playback time estimated by the controller, and (ii) trans-rates in real time one or more epochs from a first bitrate to a second, lower, bitrate to reduce an average video bitrate to a level suitable for transport with current network conditions. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A system for streaming data over a network, the system comprising:
-
a controller connected between a hosting web server that hosts audio/video content and a user playback equipment, wherein the controller (A) intercepts data packets being transferred over a network from said hosting web server to said user playback equipment, (B) identifies the intercepted data packets as being part of at least one temporally ordered content stream, (C) divides the data packets of the content stream into epochs of contiguous data, the epochs including a current epoch, (D) determines a bit rate available on the network for transferring the current epoch from said controller to the user playback equipment, and (E) estimates a temporal amount of the content stream that is buffered at the user playback equipment to which the content stream is being transferred, by taking into account at least (a) the bit rate available on the network, as estimated by said controller, and (b) a video bit rate at which the epoch is encoded, as determined by said controller; and a delivery interface that slows the transfer of the current epoch over the network toward the user playback equipment if the calculated estimate is above a threshold. - View Dependent Claims (14)
-
-
15. A computer-readable memory having a computer-readable program embodied therein for directing operation of a computer system for streaming data over a network, the computer-readable program including computer executable instructions for processing in accordance with the following:
-
at an adaptive progressive server which streams content to a user playback equipment, dividing data packets of an intercepted content stream into epochs of contiguous data such that content of each epoch can be independently transrated for transfer over a network as part of a temporally ordered content stream, the epochs including a current epoch; at the adaptive progressive server which streams content to the user playback equipment, determining a bit rate available on the network for transferring the current epoch from the adaptive progressive server to the user playback equipment; at the adaptive progressive server which streams content to the user playback equipment, estimating a temporal amount of the content stream that is buffered at the user playback equipment to which the content stream is being transferred, wherein the estimating is based at least in part on (a) the bit rate available on the network, as determined by the adaptive progressive server, and (b) an encoding bit rate of the intercepted content stream, as determined by the adaptive progressive server; and at the adaptive progressive server which streams content to the user playback equipment, controlling the transfer of the content stream over the network toward the user playback equipment in accordance with the playback time estimated by the adaptive progressive server, and trans-rating in real time one or more epochs from a first bitrate to a second, lower, bitrate. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer-readable memory having a computer-readable program embodied therein for directing operation of a computer system for streaming data over a network, the computer-readable program including computer executable instructions for processing in accordance with the following:
-
at a Deep Packet Inspection (DPI) router that routes packets of audio/video content to a user playback equipment, intercepting data packets being transferred over the network, identifying that the data packets are part of a temporally ordered content stream, and forwarding the temporally ordered content stream to a demultiplexing subsystem of an adaptive progressive server; at said adaptive progressive server that routes packets of audio/video content to the user playback equipment, dividing the intercepted data packets of the content stream into epochs of contiguous data, the epochs including a current epoch, wherein the dividing comprises dividing the intercepted data packets into epochs such that each epoch corresponds to approximately five to seven seconds of audio/video content; at said adaptive progressive server that routes packets of audio/video content to the user playback equipment, determining a bit rate available on the network for transferring the current epoch; at said adaptive progressive server that routes packets of audio/video content to the user playback equipment, estimating a temporal amount of the content stream that is buffered at the user playback equipment to which the content stream is being transferred, wherein the estimating at said adaptive progressive server is based at least in part on (a) the bit rate available on the network, as determined by the adaptive progressive server, and (b) an encoding bit rate of the content stream, as determined by the adaptive progressive server; and at said adaptive progressive server, estimating that the temporal amount of the content stream that is buffered at the user playback equipment is above a threshold, and slowing transfer of the current epoch over the network toward said user playback equipment.
-
Specification