Deterministically skewing transmission of content streams
First Claim
1. A computerized method comprising:
- receiving, by a video delivery system, a content stream comprising one or more video frames;
buffering, by the video delivery system, the content stream in a buffer, wherein the buffer allows simultaneous read access to the content stream at a plurality of locations;
receiving, by the video delivery system, a first request for the content stream from a first device and a second request for the content stream from a second device;
determining, by the video delivery system, a first transmission delay parameter to use for the first device based on a first internal system value;
determining, by the video delivery system, a second transmission delay parameter to use for the second device based on a second internal system value;
associating, by the video delivery system, the first transmission delay parameter with the first device and the second transmission delay parameter with the second device, so as to stagger transmission of the content stream to the first device and the second device;
transmitting, by the video delivery system, one or more video frames of the content stream from the buffer to the first device associated with a first subscriber beginning at a first location in the buffer based on the first transmission delay parameter; and
transmitting, by the video delivery system, one or more video frames of the content stream from the buffer to the second device associated with a second subscriber beginning at a second location in the buffer based on the second transmission delay parameter;
wherein the video delivery system determines the first transmission delay parameter and associates the first transmission delay parameter with the first device at any of;
a time that the first device connects to the video delivery system, and a time that the first subscriber connects to the video delivery system;
wherein the first internal system value, which the video delivery system uses to determine the first transmission delivery parameter, is one or more of;
(i) a predetermined first provisioning parameter stored in a table for at least one of the first device and the first subscriber, the first provisioning parameter accessed when at least one of the first subscriber and the first device connects to the video delivery system, (ii) a first random number within a range having a maximum value limit based on a length of the buffer, (iii) calculated by adding an incremental value to a transmission delay parameter determined before the first device connects and based on a sequence in which devices connect to the video delivery system, and (iv) based on current system loading, where current means any of;
at the time of the first device'"'"'s connection to the video delivery system, and the time of the first subscriber'"'"'s connection to the video delivery system;
wherein the video delivery system determines the second transmission delay parameter and associates the second transmission delay parameter with the second device at any of;
a time that the second device connects to the video delivery system, and a time that the second subscriber connects to the video delivery system;
wherein the second internal system value, which the video delivery system uses to determine the second transmission delivery parameter, is one or more of;
(i) a predetermined second provisioning parameter stored in a table for at least one of the second device and the second subscriber, the second provisioning parameter accessed when at least one of the second subscriber and the second device connects to the video delivery system, (ii) a second random number within the range having the maximum value limit based on the length of the buffer, (iii) calculated by adding the incremental value to a transmission delay parameter determined before the second device connects and based on the sequence in which devices connect to the video delivery system, and (iv) based on current system loading, where current means any of;
at the time of the second device'"'"'s connection to the video delivery system, and the time of the second subscriber'"'"'s connection to the video delivery system.
2 Assignments
0 Petitions
Accused Products
Abstract
Described are computer-based methods and apparatuses, including computer program products, for deterministically skewing transmission of content streams. A content stream comprising one or more video frames is received. The content stream is buffered in a buffer, wherein the buffer allows simultaneous read access to the content stream at a plurality of locations. One or more video frames of the content stream are transmitted from the buffer to a first device associated with a first subscriber beginning at a first location in the buffer based on a first transmission delay parameter. One or more video frames of the content stream are transmitted from the buffer to a second device associated with a second subscriber beginning at a second location in the buffer based on a second transmission delay parameter.
-
Citations
27 Claims
-
1. A computerized method comprising:
-
receiving, by a video delivery system, a content stream comprising one or more video frames; buffering, by the video delivery system, the content stream in a buffer, wherein the buffer allows simultaneous read access to the content stream at a plurality of locations; receiving, by the video delivery system, a first request for the content stream from a first device and a second request for the content stream from a second device; determining, by the video delivery system, a first transmission delay parameter to use for the first device based on a first internal system value; determining, by the video delivery system, a second transmission delay parameter to use for the second device based on a second internal system value; associating, by the video delivery system, the first transmission delay parameter with the first device and the second transmission delay parameter with the second device, so as to stagger transmission of the content stream to the first device and the second device; transmitting, by the video delivery system, one or more video frames of the content stream from the buffer to the first device associated with a first subscriber beginning at a first location in the buffer based on the first transmission delay parameter; and transmitting, by the video delivery system, one or more video frames of the content stream from the buffer to the second device associated with a second subscriber beginning at a second location in the buffer based on the second transmission delay parameter; wherein the video delivery system determines the first transmission delay parameter and associates the first transmission delay parameter with the first device at any of;
a time that the first device connects to the video delivery system, and a time that the first subscriber connects to the video delivery system;wherein the first internal system value, which the video delivery system uses to determine the first transmission delivery parameter, is one or more of;
(i) a predetermined first provisioning parameter stored in a table for at least one of the first device and the first subscriber, the first provisioning parameter accessed when at least one of the first subscriber and the first device connects to the video delivery system, (ii) a first random number within a range having a maximum value limit based on a length of the buffer, (iii) calculated by adding an incremental value to a transmission delay parameter determined before the first device connects and based on a sequence in which devices connect to the video delivery system, and (iv) based on current system loading, where current means any of;
at the time of the first device'"'"'s connection to the video delivery system, and the time of the first subscriber'"'"'s connection to the video delivery system;wherein the video delivery system determines the second transmission delay parameter and associates the second transmission delay parameter with the second device at any of;
a time that the second device connects to the video delivery system, and a time that the second subscriber connects to the video delivery system;wherein the second internal system value, which the video delivery system uses to determine the second transmission delivery parameter, is one or more of;
(i) a predetermined second provisioning parameter stored in a table for at least one of the second device and the second subscriber, the second provisioning parameter accessed when at least one of the second subscriber and the second device connects to the video delivery system, (ii) a second random number within the range having the maximum value limit based on the length of the buffer, (iii) calculated by adding the incremental value to a transmission delay parameter determined before the second device connects and based on the sequence in which devices connect to the video delivery system, and (iv) based on current system loading, where current means any of;
at the time of the second device'"'"'s connection to the video delivery system, and the time of the second subscriber'"'"'s connection to the video delivery system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27)
-
-
21. A system comprising:
-
one or more microprocessors and one or more storage devices holding first and second computer program instructions for execution on at least one of the one or more microprocessors; an ingest module comprising the first computer program instructions for receiving a content stream comprising one or more video frames; a buffer in communication with the ingest module configured to buffer the content stream, wherein the buffer allows simultaneous read access to the buffered content stream at a plurality of locations; and a delivery module in communication with the buffer, the delivery module comprising the second machine-readable instructions for; receiving a first request for the content stream from a first device and a second request for the content stream from a second device; determining a first transmission delay parameter to use for the first device based on a first internal system value; determining a second transmission delay parameter to use for the second device based on a second internal system value; associate the first transmission delay parameter with the first device and the second transmission delay parameter with the second device, so as to stagger transmission of the content stream to the first device and the second device; transmit one or more video frames of the content stream from the buffer to the first device associated with a first subscriber beginning at a first location in the buffer based on the first transmission delay parameter; and transmit one or more video frames of the content stream from the buffer to the second device associated with a second subscriber beginning at a second location in the buffer based on the second transmission delay parameter; wherein the determining of the first transmission delay parameter and associating of the first transmission delay parameter with the first device at any of;
a time that the first device connects to the system, and a time that the first subscriber connects to the system;wherein the first internal system value, which the system uses to determine the first transmission delivery parameter, is one or more of;
(i) a predetermined first provisioning parameter stored in a table for at least one of the first device and the first subscriber, the first provisioning parameter accessed when at least one of the first subscriber and the first device connects to the system, (ii) a first random number within a range having a maximum value limit based on a length of the buffer, (iii) calculated by adding an incremental value to a transmission delay parameter determined before the first device connects and based on a sequence in which devices connect to the system, and (iv) based on current system loading, where current means any of;
at the time of the first device'"'"'s connection to the system, and the time of the first subscriber'"'"'s connection to the system;wherein the determining of the second transmission delay parameter and associating of the second transmission delay parameter with the second device at any of;
a time that the second device connects to the system, and a time that the second subscriber connects to the system;wherein the second internal system value, which the system uses to determine the second transmission delivery parameter, is one or more of;
(i) a predetermined second provisioning parameter stored in a table for at least one of the second device and the second subscriber, the second provisioning parameter accessed when at least one of the second subscriber and the second device connects to the system, (ii) a second random number within the range having the maximum value limit based on the length of the buffer, (iii) calculated by adding the incremental value to a transmission delay parameter determined before the second device connects and based on the sequence in which devices connect to the system, and (iv) based on current system loading, where current means any of;
at the time of the second device'"'"'s connection to the system, and the time of the second subscriber'"'"'s connection to the system.
-
-
22. A computer program product, tangibly embodied in a computer readable non-transitory storage medium, the computer program product including instructions being operable to cause a data processing apparatus to:
-
receive a content stream comprising one or more video frames; buffer the content stream in a buffer, wherein the buffer allows simultaneous read access to the content stream at a plurality of locations; receive a first request for the content stream from a first device and a second request for the content stream from a second device; determine a first transmission delay parameter to use for the first device based on a first internal system value; determine a second transmission delay parameter to use for the second device based on a second internal system value; associate the first transmission delay parameter with the first device and the second transmission delay parameter with the second device, so as to stagger transmission of the content stream to the first device and the second device; transmit one or more video frames of the content stream from the buffer to the first device associated with a first subscriber beginning at a first location in the buffer based on the first transmission delay parameter; and transmit one or more video frames of the content stream from the buffer to the second device associated with a second subscriber beginning at a second location in the buffer based on the second transmission delay parameter; wherein the data processing apparatus determines the first transmission delay parameter and associates the first transmission delay parameter with the first device at any of;
a time that the first device connects to the data processing apparatus, and a time that the first subscriber connects to the data processing apparatus;wherein the first internal system value, which the data processing apparatus uses to determine the first transmission delivery parameter, is one or more of;
(i) a predetermined first provisioning parameter stored in a table for at least one of the first device and the first subscriber, the first provisioning parameter accessed when at least one of the first subscriber and the first device connects to the data processing apparatus, (ii) a first random number within a range having a maximum value limit based on a length of the buffer, (iii) calculated by adding an incremental value to a transmission delay parameter determined before the first device connects and based on a sequence in which devices connect to the data processing apparatus, and (iv) based on current system loading, where current means any of;
at the time of the first device'"'"'s connection to the data processing apparatus, and the time of the first subscriber'"'"'s connection to the data processing apparatus;wherein the data processing apparatus determines the second transmission delay parameter and associates the second transmission delay parameter with the second device at any of;
a time that the second device connects to the data processing apparatus, and a time that the second subscriber connects to the data processing apparatus;wherein the second internal system value, which the data processing apparatus uses to determine the second transmission delivery parameter, is one or more of;
(i) a predetermined second provisioning parameter stored in a table for at least one of the second device and the second subscriber, the second provisioning parameter accessed when at least one of the second subscriber and the second device connects to the data processing apparatus, (ii) a second random number within the range having the maximum value limit based on the length of the buffer, (iii) calculated by adding the incremental value to a transmission delay parameter determined before the second device connects and based on the sequence in which devices connect to the data processing apparatus, and (iv) based on current system loading, where current means any of;
at the time of the second device'"'"'s connection to the data processing apparatus, and the time of the second subscriber'"'"'s connection to the data processing apparatus.
-
-
23. A system comprising:
-
means for receiving a content stream comprising one or more video frames; means for buffering the content stream, wherein the buffering means allows simultaneous read access to the buffered content stream at a plurality of locations; and means for; receiving a first request for the content stream from a first device and a second request for the content stream from a second device; determining a first transmission delay parameter to use for the first device based on a first internal system value; determining a second transmission delay parameter to use for the second device based on a second internal system value; associating the first transmission delay parameter with the first device and the second transmission delay parameter with the second device, so as to stagger transmission of the content stream to the first device and the second device; transmitting one or more video frames of the content stream from the buffering means to the first device associated with a first subscriber beginning at a first location of the buffering means based on the first transmission delay parameter; and transmitting one or more video frames of the content stream from the buffering means to the second device associated with a second subscriber beginning at a second location of the buffering means based on the second transmission delay parameter; wherein the determining of the first transmission delay parameter and associating of the first transmission delay parameter with the first device at any of;
a time that the first device connects to the system, and a time that the first subscriber connects to the system;wherein the first internal system value, which the system uses to determine the first transmission delivery parameter, is one or more of;
(i) a first predetermined provisioning parameter stored in a table for at least one of the first device and the first subscriber, the first provisioning parameter accessed when at least one of the first subscriber and the first device connects to the system, (ii) a first random number within a range having a maximum value limit based on a length of the buffer, (iii) calculated by adding an incremental value to a transmission delay parameter determined before the first device connects and based on a sequence in which devices connect to the system, and (iv) based on current system loading, where current means any of;
at the time of the first device'"'"'s connection to the system, and the time of the first subscriber'"'"'s connection to the system;wherein the determining of the second transmission delay parameter and associating of the second transmission delay parameter with the second device at any of;
a time that the second device connects to the system, and a time that the second subscriber connects to the system;wherein the second internal system value, which the system uses to determine the second transmission delivery parameter, is one or more of;
(i) a predetermined second provisioning parameter stored in a table for at least one of the second device and the second subscriber, the second provisioning parameter accessed when at least one of the second subscriber and the second device connects to the system, (ii) a second random number within the range having the maximum value limit based on the length of the buffer, (iii) calculated by adding the incremental value to a transmission delay parameter determined before the second device connects and based on the sequence in which devices connect to the system, and (iv) based on current system loading, where current means any of;
at the time of the second device'"'"'s connection to the system, and the time of the second subscriber'"'"'s connection to the system.
-
Specification