Traffic shaping for live media streaming
First Claim
Patent Images
1. A method of providing live media streaming via a data communications network, the method comprising:
- receiving a stream of data representing live media content, the stream of data comprising a plurality of source segments;
accessing timing data of each of the received plurality of source segments of the stream of data;
creating a mapping that provides an association of the timing data of the received plurality of source segments to time values obtained from a system clock, wherein the mapping associates the timing data of each of the received plurality of source segments to the time value of the system clock at the time the source segment was received;
transcoding the plurality of received source segments to form transcoded segments and storing the transcoded segments in memory;
receiving requests from a plurality of clients to receive live media content;
assigning a respective offset time value to each of the plurality of clients, wherein at least two offset time values are different;
forming, for each client of the plurality of clients, a respective client manifest based on the offset time value assigned to the client, the respective client manifest enabling the client to obtain requested segments of the live media content that have time values according to the mapping that are offset from the value of the system clock by the respective offset time value assigned to the respective client; and
sending the client manifests to the respective clients via the data communications network.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems are disclosed for providing live media streaming over a communication network. Timing data of a received live media stream is mapped to time values from a system clock. Offset time values are assigned to a plurality of clients requesting live media content. The time values and the offset time values are used for transmission of the media stream.
-
Citations
18 Claims
-
1. A method of providing live media streaming via a data communications network, the method comprising:
- receiving a stream of data representing live media content, the stream of data comprising a plurality of source segments;
accessing timing data of each of the received plurality of source segments of the stream of data;
creating a mapping that provides an association of the timing data of the received plurality of source segments to time values obtained from a system clock, wherein the mapping associates the timing data of each of the received plurality of source segments to the time value of the system clock at the time the source segment was received;
transcoding the plurality of received source segments to form transcoded segments and storing the transcoded segments in memory;
receiving requests from a plurality of clients to receive live media content;
assigning a respective offset time value to each of the plurality of clients, wherein at least two offset time values are different;
forming, for each client of the plurality of clients, a respective client manifest based on the offset time value assigned to the client, the respective client manifest enabling the client to obtain requested segments of the live media content that have time values according to the mapping that are offset from the value of the system clock by the respective offset time value assigned to the respective client; and
sending the client manifests to the respective clients via the data communications network. - View Dependent Claims (2, 3, 4, 5, 6, 7)
- receiving a stream of data representing live media content, the stream of data comprising a plurality of source segments;
-
8. A server system for providing live media streaming via a data communications network, the system comprising:
- one or more processors; and
memory comprising instructions that when executed by a combination of the one or more processors causes the combination of processors to;
receive a stream of data representing live media content, the stream of data comprising a plurality of source segments;
access timing data of each of the received plurality of source segments of the stream of data;
create a mapping that provides an association of the timing data of the received plurality of source segments to time values obtained from a system clock, wherein the mapping associates the timing data of each of the received plurality of source segments to the time value of the system clock at the time the source segment was received;
transcode the plurality of received source segments to form transcoded segments and store the transcoded segments;
receive requests from a plurality of clients to receive live media content;
assign a respective offset time value to each of the plurality of clients, wherein at least two offset time values are different;
form, for each client of the plurality of clients, a respective client manifest based on the offset time value assigned to the client, the respective client manifest enabling the client to obtain requested segments of the live media content that have time values according to the mapping that are offset from the value of the system clock by the respective offset time value assigned to the respective client; and
send the client manifests to the respective clients via the data communications network. - View Dependent Claims (9, 10, 11, 12, 13, 14)
- one or more processors; and
-
15. A computer program product embodied on a nontransitory computer-readable medium and comprising code that, when executed, causes one or more processors to:
- receive via a data communications network a stream of data representing live media content, the stream of data comprising a plurality of source segments;
access timing data of each of the received plurality of source segments of the stream of data;
create a mapping that provides an association of the timing data of the received plurality of source segments to time values obtained from a system clock, wherein the mapping associates the timing data of each of the received plurality of source segments to the time value of the system clock at the time the source segment was received;
transcode the received plurality of source segments to form transcoded segments and storing the transcoded segments in memory;
receive requests from a plurality of clients to receive live media content;
assign a respective offset time value to each of the plurality of clients, wherein at least two offset time values are different;
form, for each client of the plurality of clients, a respective client manifest based on the offset time value assigned to the client, the respective client manifest comprising information enabling the client to obtain requested segments of the live media content that have time values according to the mapping that are offset from the value of the system clock by the respective offset time value assigned to the respective client; and
send the client manifests to the respective clients via the data communications network. - View Dependent Claims (16, 17, 18)
- receive via a data communications network a stream of data representing live media content, the stream of data comprising a plurality of source segments;
Specification