IP Library Granted Patent US 8,935,432
Granted Patent B1
US 8,935,432 · App. 14/199,610 · Granted Jan 13, 2015

Clock locking for live media streaming

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,935,432
App. No.
14/199,610
Granted
Jan 13, 2015
Kind
B1
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. The time values are used for transmission of the media stream.

Claims (59)

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 received plurality of source segments to form transcoded segments and storing the transcoded segments in memory;

receiving a request from a client to obtain the live media content;

assigning an offset time value to the client;

forming a client manifest comprising information that enables the client to obtain requested segments of the live media content; and

sending the client manifest to the client via the data communications network.

2. The method of providing live media streaming via a data communications network of claim 1 , wherein the offset time value is zero.

3. The method of providing live media streaming via a data communications network of claim 1 , wherein the information in the client manifest enables the client to obtain requested segments that have time values according to the mapping that are offset from the time value of the system clock by the offset time value assigned to the client.

4. The method of providing live media streaming via a data communications network of claim 1 , further comprising updating the mapping during transcoding to maintain the association between the timing data of the transcoded segments and the time values obtained from the system clock corresponding to when the transcoded segments were received.

5. The method of providing live media streaming via a data communications network of claim 1 , wherein sending the client manifest to the client uses an application program interface.

6. The method of providing live media streaming via a data communications network of claim 1 , wherein the client manifest comprises information that enables the client to obtain the requested live media content from a media file delivery service provider.

7. The method of providing live media streaming via a data communications network of claim 1 , further comprising:

determining that the request received from the client is an initial request from the client; and

wherein the client manifest comprises information that enables the client to obtain requested segments of different durations.

8. The method of providing live media streaming via a data communications network of claim 7 wherein the client manifest comprises information that enables the client to obtain requested segments of increasing durations.

9. The method of providing live media streaming via a data communications network of claim 8 , wherein a final requested segment has a standard duration.

10. 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 received plurality of source segments to form transcoded segments and store the transcoded segments in the memory;

receive a request from a client to obtain the live media content;

assign an offset time value to the client;

form a client manifest comprising information that enables the client to obtain requested segments of the live media content; and

send the client manifest to the client via the data communications network.

11. The server system for providing live media streaming via a data communications of claim 10 , wherein the offset time value is zero.

12. The server system for providing live media streaming via a data communications network of claim 10 , wherein the information in the client manifest enables the client to obtain requested segments that have time values according to the mapping that are offset from the time value of the system clock by the offset time value assigned to the client.

13. The server system for providing live media streaming via a data communications network of claim 10 , wherein the instructions cause the combination of processors to update the mapping during transcoding to maintain the association between the timing data of the transcoded segments and the time values obtained from the system clock corresponding to when the transcoded segments were received.

14. The server system for providing live media streaming via a data communications network of claim 10 , wherein sending the client manifest to the client uses an application program interface.

15. The server system for providing live media streaming via a data communications network of claim 10 , wherein the client manifest comprises information that enables the client to obtain the requested live media content from a media file delivery service provider.

16. The server system for providing live media streaming via a data communications network of claim 10 , wherein the instructions cause the combination of processors to:

determine that the request received from the client is an initial request from the client; and

wherein the client manifest comprises information that enables the client to obtain requested segments of different durations.

17. The server system for providing live media streaming via a data communications network of claim 16 , wherein the client manifest comprises information that enables the client to obtain requested segments of increasing durations.

18. The server system for providing live media streaming via a data communications network of claim 17 , wherein a final requested segment has a standard duration.

19. A computer program product embodied on a non-transitory 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 a request from a client to obtain the live media content;

assign an offset time value to the client;

form a client manifest comprising information that enables the client to obtain requested segments of the live media content; and

send the client manifest to the client via the data communications network.

20. The computer-program product of claim 19 , wherein the offset time value is zero.

21. The computer-program product of claim 19 , wherein the information in the client manifest enables the client to obtain requested segments that have time values according to the mapping that are offset from the time value of the system clock by the offset time value assigned to the client.

22. The computer-program product of claim 19 , wherein the code further causes the one or more processors to update the mapping during transcoding to maintain the association between the timing data of the transcoded segments and the time values obtained from the system clock corresponding to when the transcoded segments were received.

23. The computer-program product of claim 19 , wherein the client manifest is sent to the client using an application program interface.

24. The computer-program product of claim 19 , wherein the client manifest comprises information that enables the client to obtain the requested live media content from a media file delivery service provider.

25. The computer-program product of claim 19 , wherein the code further causes the one or more processors to:

determine that the request received from the client is an initial request from the client; and

wherein the client manifest comprises information that enables the client to obtain requested segments of different durations.

26. The computer-program product of claim 25 , wherein the client manifest comprises information that enables the client to obtain requested segments of increasing durations.

27. The computer-program product of claim 26 , wherein a final requested segment has a standard duration.

Assignments (4)
PATENT SECURITY AGREEMENT Recorded Jun 12, 2025
From: BRIGHTCOVE INC.
To: INTESA SANPAOLO S.P.A., AS SECURITY AGENT
Reel/Frame 071575/0646 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2015
From: CACTI ACQUISITION LLC
To: BRIGHTCOVE INC.
Reel/Frame 034745/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2014
From: UNICORN MEDIA, INC.
To: CACTI ACQUISITION LLC
Reel/Frame 033788/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2014
From: MCGOWAN, ALBERT JOHN; AHERN, BENJAMIN LEBRATO; MARSHALL, JARED KENNETH; MAULTSBY, NICHOLAS; HUFFMAN, NIKO THOMAS JOHN
To: UNICORN MEDIA, INC.
Reel/Frame 033622/0916 →