IP Library Granted Patent US 10,469,880
Granted Patent B1
US 10,469,880 · App. 15/714,147 · Granted Nov 5, 2019

Providing alternative live media content

Inventors: Alexandria Way-Wun Kravis (Seattle, WA); Joshua Danovitz (Seattle, WA); Brandon Scott Love (Seattle, WA); Felicia Yue (Mukilteo, WA); Jeromey Russell Goetz (Seattle, WA); Lars Christian Ulness (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04N21/2187H04N21/234H04N21/8547
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 10,469,880
App. No.
15/714,147
Granted
Nov 5, 2019
Kind
B1
Abstract

Techniques are described for providing alternative media content to a client device along with primary media content.

Claims (68)

1. A system, comprising one or more processors and memory configured to:

receive a request for primary live content of an event from a client device;

receive a request for alternative live content corresponding to the event from the client device;

receive a primary live content feed from a first content provider;

identify a live playhead of the primary live content feed, the live playhead of the primary live content feed corresponding to a first most recently encoded fragment of the primary live content feed that is available for request by clients;

assign a first timestamp to the live playhead of the primary live content feed using a master clock component, the first timestamp representing a first time of the master clock component;

receive an alternative live content feed from a second content provider different from the first content provider;

identify a live playhead of the alternative live content feed, the live playhead of the alternative live content feed corresponding to a second most recently encoded fragment of the alternative live content feed that is available for request by clients;

assign a second timestamp to the live playhead of the alternative live content feed using the master clock component, the second timestamp representing a second time of the master clock component that is later than the first time of the master clock component represented by the first timestamp;

determine an offset based on the first timestamp and the second timestamp;

align the live playhead of the primary live content feed with the live playhead of the alternative live content feed according to the offset;

generate a combined live content stream based on the primary live content feed and the alternative live content feed and based on the alignment of the live playhead of the primary live content feed with the live playhead of the alternative live content feed; and

provide the combined live content stream to the client device.

2. The system of claim 1 , wherein the one or more processors and memory are further configured to:

receive an additional request for additional alternative live content from the client device;

receive an additional alternative live content feed from a third content provider different from the first content provider and the second content provider;

identify a live playhead of the additional alternative live content feed;

assign a third timestamp to the live playhead of the additional alternative live content feed using the master clock component;

identify an additional live playhead of the primary live content feed;

assign a fourth timestamp to the additional live playhead of the primary live content feed using the master clock component;

determine an additional offset based on the fourth timestamp and the third timestamp;

align the additional live playhead of the primary live content feed with the live playhead of the additional alternative live content feed according to the additional offset; and

generate, using the additional offset, a new combined live content stream based on the primary live content feed and the additional alternative live content feed.

3. The system of claim 1 , wherein the offset represents a difference based on the first timestamp and the second timestamp, and wherein the one or more processors and memory are configured to generate the combined live content stream using the offset by assigning a new timestamp to the live playhead of the alternative live content feed, the new timestamp representing a sum of the offset and the second timestamp.

4. A system, comprising one or more processors and memory configured to:

receive a request for first live content from a client device;

receive a request for second live content from the client device, the second live content being different from the first live content, wherein the first live content represents primary live content and the second live content represents alternative live content related to the first live content;

identify a live playhead of the first live content, the live playhead of the first live content corresponding to a first most recently encoded fragment of the first live content that is available for request by clients;

assign a first timestamp to the live playhead of the first live content using a master clock component, the first timestamp representing a first time of the master clock component;

identify a live playhead of the second live content, the live playhead of the second live content corresponding to a second most recently encoded fragment of the first live content that is available for request by clients;

assign a second timestamp to the live playhead of the second live content using the master clock component, the second timestamp representing a second time of the master clock component that is later than the first time of the master clock component represented by the first timestamp;

determine an offset based on the first timestamp and the second timestamp;

generate, using the offset, a combined live content stream based on the first live content and the second live content by aligning the live playhead of the first live content with the live playhead of the second live content according to the offset; and

provide the combined live content stream to the client device.

5. The system of claim 4 , wherein the one or more processors and memory are further configured to identify a first event based on a sequence of frames associated with the live playhead of the first live content and identify a second event based on a sequence of frames associated with the live playhead of the second live content, wherein the first event matches the second event.

6. The system of claim 4 , wherein the one or more processors and memory are further configured to:

receive an additional request for new second live content from the client device;

identify a live playhead of the new second live content;

assign a third timestamp to the live playhead of the new second live content using the master clock component;

identify an additional live playhead of the first live content;

assign a fourth timestamp to the live playhead of the first live content using the master clock component;

determine an additional offset based on the fourth timestamp and the third timestamp; and

generate, using the additional offset, a new combined live content stream based on the first live content and the new second live content.

7. The system of claim 4 , wherein the offset represents a difference based on the first timestamp and the second timestamp, and wherein the one or more processors and memory are configured to generate the combined live content stream using the offset by assigning a new timestamp to the live playhead of the second live content, the new timestamp representing a sum of the offset and the second timestamp.

8. The system of claim 4 , wherein the one or more processors and memory are further configured to receive first live content from a first content provider and receive second live content from a second content provider different from the first content provider.

9. The system of claim 4 , wherein the request for first live content was generated by the client device, a voice-enabled device, or a second screen enabled device associated with the client device.

10. A method, comprising:

receiving a request for first live content from a client device;

receiving a request for second live content from the client device, the second live content being different from the first live content, wherein the first live content represents primary live content and the second live content represents alternative live content related to the first live content;

identifying a live playhead of the first live content, the live playhead of the first live content corresponding to a first most recently encoded fragment of the first live content that is available for request by clients;

assigning a first timestamp to the live playhead of the first live content using a master clock component, the first timestamp representing a first time of the master clock component;

identifying a live playhead of the second live content, the live playhead of the second live content corresponding to a second most recently encoded fragment of the second live content that is available for request by clients;

assigning a second timestamp to the live playhead of the second live content using the master clock component, the second timestamp representing a second time of the master clock component that is later than the first time of the master clock component represented by the first timestamp;

determining an offset based on the first timestamp and the second timestamp;

generating, using the offset, a combined live content stream based on the first live content and the second live content by aligning the live playhead of the first live content with the live playhead of the second live content according to the offset; and

providing the combined live content stream to the client device.

11. The method of claim 10 , further comprising identifying a first event based on a sequence of frames associated with the live playhead of the first live content and identifying a second event based on a sequence of frames associated with the live playhead of the second live content, wherein the first event matches the second event.

12. The method of claim 10 , further comprising:

receiving an additional request for new second live content from the client device;

identifying a live playhead of the new second live content;

assigning a third timestamp to the live playhead of the new second live content using the master clock component;

identifying an additional live playhead of the first live content;

assigning a fourth timestamp to the live playhead of the first live content using the master clock component;

determining an additional offset based on the fourth timestamp and the third timestamp; and

generating, using the additional offset, a new combined live content stream based on the first live content and the new second live content.

13. The method of claim 10 , wherein the offset represents a difference based on the first timestamp and the second timestamp, further comprising generating the combined live content stream using the offset by assigning a new timestamp to the live playhead of the second live content, the new timestamp representing a sum of the offset and the second timestamp.

14. The method of claim 10 , further comprising receiving first live content from a first content provider and receiving second live content from a second content provider different from the first content provider.

15. The method of claim 10 , wherein the request for first live content was generated by the client device, a voice-enabled device, or a second screen enabled device associated with the client device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: KRAVIS, ALEXANDRIA WAY-WUN; DANOVITZ, JOSHUA; LOVE, BRANDON SCOTT; YUE, FELICIA; GOETZ, JEROMEY RUSSELL; ULNESS, LARS CHRISTIAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 043682/0539 →
Cited By (3)
US 12,328,471 US 12,641,302 US 12,707,132