Traffic shaping for live media streaming
OwnerAlbert John McGowan, Niko Thomas John Huffman +2inventors
InventorsAlbert John McGowan, Niko Thomas John Huffman, Nicholas Maultsby, Matthew A. Johnson
Life of this patent
Estimating the term…
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.
Claims18
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.
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.
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.
Dependencies are inferred from the claim text.