IP Library Granted Patent US 9,762,639
Granted Patent B2
US 9,762,639 · App. 15/337,865 · Granted Sep 12, 2017

Dynamic manifest generation based on client identity

Inventors: Albert John McGowan (Phoenix, AZ); Michael M. Gordon (Paradise Valley, AZ)
Assignee: Brightcove Inc.
H04L65/602G06Q30/0277H04L65/4084
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 9,762,639
App. No.
15/337,865
Granted
Sep 12, 2017
Kind
B2
Abstract

Timestamps for streams of media that transition from one media source to another (such as from live content to on-demand content, and vice versa) can be rewritten by a server to help ensure error-free streaming by the client. Embodiments can coordinate the creation of a client manifest with the dynamic creation of a requested segment of media (i.e., “chunk”) to determine how to rewrite timestamps of requested chunks such that they are continuous through the transition.

Claims (62)

1. A server for streaming media via a data communications network, the server comprising:

a network interface for communicating with the data communications network;

a memory; and

a processor communicatively coupled with the memory and the network interface, the processor further configured to cause the server to:

receive, via the network interface, a universal source locator (URL) in a first request from a first client, wherein the URL includes information indicative of a requested media source;

determine an identity of the first client;

determine a first device type based on the identity of the first client;

based at least in part on the determination of the first device type, generate a first manifest having information for streaming one or more segments of the requested media source in accordance with a first chunking protocol via the data communications network;

sending, via the network interface, the first manifest to the first client;

receive, via the network interface, the URL in a second request from a second client;

determine an identity of the second client, the identity of the second client different from the identity of the first client;

determine a second device type based on the identity of the second client, the second device type different from the first device type;

generate a second manifest having information for streaming the one or more segments of the requested media source in accordance with a second chunking protocol via the data communications network, wherein content of the second manifest is different from content of the first manifest; and

send, via the network interface, the second manifest to the second client.

2. The server for streaming media via the data communications network as recited in claim 1 , wherein the processor is configured to cause the server to determine a network type associated with the identity of the first client, wherein either or both of a format or content of the first manifest further is based, at least in part, on the network type.

3. The server for streaming media via the data communications network as recited in claim 2 , wherein the processor is configured to cause the server to include, in the first manifest, information indicative of a set of bitrates for streaming the requested media source, wherein the set of bitrates is based, at least in part, on either or both of the identity of the first client and the network type.

4. The server for streaming media via the data communications network as recited in claim 3 , wherein the processor is configured to cause the server to include, in the first manifest, information indicative of an initial bitrate of the set of bitrates for streaming the requested media source, wherein the initial bitrate is based, at least in part, on either or both of the identity of the first client and the network type.

5. The server for streaming media via the data communications network as recited in claim 1 , wherein the processor is configured to cause the server to:

receive, via the network interface, data regarding the requested media source, wherein the data includes information indicative of at least one point, during playback of the requested media source, at which at least one other media source is to be shown;

receive, via the network interface, information regarding the at least one other media source; and

configure either or both of the first manifest and the second manifest such that the at least one other media source is shown at the at least one point during the playback of the requested media source.

6. The server for streaming media via the data communications network as recited in claim 5 , wherein the processor is configured to cause the server to configure either or both of the first manifest and the second manifest to include at least one beaconing URL which, when used, is indicative of playback of the at least one other media source.

7. The server for streaming media via the data communications network as recited in claim 1 , wherein the processor is configured to cause the server to include in either or both of the first manifest and the second manifest, at least one beaconing URL which, when used, indicates a certain point has been reached in playback of the requested media source.

8. A method of streaming media via a data communications network, the method comprising:

receiving a universal source locator (URL) in a first request from a first client, wherein the URL includes information indicative of a requested media source;

determining an identity of the first client;

determining a first device type based on the identity of the first client;

based at least in part on the determination of the first device type, generating, with a processor, a first manifest having information for streaming one or more segments of the requested media source in accordance with a first chunking protocol via the data communications network;

sending the first manifest to the first client;

receiving the URL in a second request from a second client;

determining an identity of the second client, the identity of the second client different from the identity of the first client;

determining a second device type based on the identity of the second client, the second device type different from the first device type;

based at least in part on the determination of the second device type, generating, with the processor, a second manifest having information for streaming the one or more segments of the requested media source in accordance with a second chunking protocol via the data communications network, wherein content of the second manifest is different from content of the first manifest; and

sending the second manifest to the second client.

9. The method of streaming media via the data communications network as recited in claim 8 , further comprising determining a network type associated with the identity of the first client, wherein either or both of a format or content of the first manifest is further is based, at least in part, on the network type.

10. The method of streaming media via the data communications network as recited in claim 9 , wherein the network type includes mobile wireless network or wired network.

11. The method of streaming media via the data communications network as recited in claim 9 , further comprising including, in the first manifest, information indicative of a set of bitrates for streaming the requested media source, wherein the set of bitrates is based, at least in part, on either or both of the identity of the first client and the network type.

12. The method of streaming media via the data communications network as recited in claim 11 , further comprising including information, in the first manifest, indicative of an initial bitrate of the set of bitrates for streaming the requested media source, wherein the initial bitrate is based, at least in part, on either or both of the identity of the first client and the network type.

13. The method of streaming media via the data communications network as recited in claim 8 , further comprising:

receiving data regarding the requested media source, wherein the data includes information indicative of at least one point, during playback of the requested media source, at which at least one other media source is to be shown;

receiving information regarding the at least one other media source; and

including, in either or both of the first manifest and the second manifest, information for streaming one or more segments of the at least one other media source at the at least one point during the playback of the requested media source.

14. The method of streaming media via the data communications network as recited in claim 13 , wherein either or both of the first manifest and the second manifest include at least one beaconing URL which, when used, is indicative of playback of at least one advertisement.

15. The method of streaming media via the data communications network as recited in claim 8 , wherein either or both of the first manifest and the second manifest include at least one beaconing URL which, when used, is indicative of a certain point has been reached in playback of the requested media source.

16. The method of streaming media via the data communications network as recited in claim 8 , wherein either or both of the first manifest and the second manifest include at least one URL indicative of a request for an additional manifest.

17. The method of streaming media via the data communications network as recited in claim 8 , wherein either or both of the first manifest and the second manifest include at least one URL indicative of a request for content of the requested media source.

18. A non-transitory computer-readable medium having instructions embedded thereon for streaming media via a data communications network, the instructions including computer code for:

receiving a universal source locator (URL) in a first request from a first client, wherein the URL includes information indicative of a requested media source;

determining an identity of the first client;

determining a first device type based on the identity of the first client;

based at least in part on the determination of the first device type, generating a first manifest having information for streaming one or more segments of the requested media source in accordance with a first chunking protocol via the data communications network;

sending the first manifest to the first client;

receiving the URL in a second request from a second client;

determining an identity of the second client, the identity of the second client different from the identity of the first client;

determining a second device type based on the identity of the second client, the second device type different from the first device type;

based at least in part on the determination of the second device type, generating a second manifest having information for streaming the one or more segments of the requested media source in accordance with a second chunking protocol via the data communications network, wherein content of the second manifest is different from content of the first manifest; and

sending the second manifest to the second client.

19. The non-transitory computer-readable medium as recited in claim 18 , wherein the instructions further comprise computer code for including information in the first manifest indicative of an initial bitrate of a set of bitrates for streaming the requested media source, wherein the initial bitrate is based, at least in part, on either or both of the identity of the first client and a network type.

20. The non-transitory computer-readable medium as recited in claim 18 , wherein the instructions further comprise computer code for:

receiving data regarding the requested media source, wherein the data includes information indicative of at least one point, during playback of the requested media source, at which at least one other media source is to be shown;

receiving information regarding the at least one other media source; and

including, in either or both of the first manifest and the second manifest, information for streaming one or more segments of the at least one other media source at the at least one point during the playback of the requested media source.

Assignments (4)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075304/0073 →
SECURITY INTEREST Recorded May 28, 2025
From: ADEIA INC. (F/K/A XPERI HOLDING CORPORATION); ADEIA HOLDINGS INC.; ADEIA MEDIA HOLDINGS INC.; ADEIA IMAGING LLC; ADEIA MEDIA LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA TECHNOLOGIES INC.; ADEIA GUIDES INC.; ADEIA SOLUTIONS LLC; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR INTELLECTUAL PROPERTY LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA PUBLISHING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071454/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2024
From: BRIGHTCOVE INC.
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 067609/0435 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2017
From: MCGOWAN, ALBERT JOHN; GORDON, MICHAEL M.
To: BRIGHTCOVE INC.
Reel/Frame 041937/0161 →
Priority Claims (1)
AU 2010202741 · Jun 30, 2010 · national
Continuity (12)
Continuation In Part 14918368 · Oct 20, 2015
Continuation 14086801 · Nov 21, 2013
Continuation 15337865
Continuation In Part 13339680 · Dec 29, 2011
Continuation In Part 13245372 · Sep 26, 2011
Continuation In Part 15337865
Continuation In Part 13791789 · Mar 8, 2013
Continuation In Part 13624029 · Sep 21, 2012
Continuation 13430081 · Mar 26, 2012
Continuation In Part 12976883 · Dec 22, 2010
Provisional Application 61884709 · Sep 30, 2013
Related Publication 20170142180A1 · May 18, 2017