IP Library › Granted Patent US 12,289,503
Granted Patent B2
US 12,289,503 · App. 17/133,198 · Granted Apr 29, 2025

Systems, methods, and apparatuses for improved failover techniques

Inventors: Adam Ross (Louisville, CO); Landon Baxter (Lafayette, CO); Andrew Morrow (Denver, CO)
Assignee: Comcast Cable Communications, LLC
H04N21/6473H04N21/435H04N21/437H04N21/4622H04N21/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 12,289,503
App. No.
17/133,198
Granted
Apr 29, 2025
Kind
B2
Abstract

Methods and systems for improved failover techniques are described herein. A failure associated with a content source may lead to a computing device becoming unable to output all or part of content that was requested from the content source prior to the failure. The computing device may have received a portion of a manifest associated with the content prior to the failure. The failover techniques described herein may enable the computing device to continue receiving portions of the content despite the failure. For example, an additional portion of the manifest may be modified such that the computing device may request additional portions of the content from another content source without requiring a retuning procedure.

Claims (59)

1. A method comprising:

receiving, by a first computing device, an indication of a disruption associated with at least one portion of content requested by a second computing device, via a first origin computing device, according to a first manifest associated with the first origin computing device;

determining, based on the disruption, a second origin computing device associated with the content;

receiving, via the second origin computing device, at least one portion of a second manifest associated with the content;

modifying, based on the first manifest and the at least one portion of the second manifest, at least one portion of the first manifest to include replacement timing data; and

sending, to the second computing device, the modified at least one portion of the first manifest comprising the replacement timing data, wherein the modified at least one portion of the first manifest and the replacement timing data cause the second computing device to receive the at least one portion of the content via the second origin computing device.

2. The method of claim 1 , wherein receiving the indication of the disruption comprises at least one of:

receiving, via the second computing device, a message indicating that the at least one portion of the content is not available;

receiving, via the second computing device, a message comprising at least one network error associated with the first origin computing device; or

receiving a message indicating a request to communicate with the first origin computing device has timed out.

3. The method of claim 1 , wherein modifying the at least one portion of the first manifest to include the replacement timing data comprises:

determining, based on first timing data associated with the first origin computing device, and based on second timing data associated with the second origin computing device, the replacement timing data; and

appending, to the at least one portion of the first manifest, the replacement timing data, wherein the replacement timing data at least partially differs from the first timing data.

4. The method of claim 3 , wherein determining the replacement timing data comprises:

determining, based on a first presentation time stamp (PTS) indicated by the first timing data, and based on a second PTS indicated by the second timing data, the replacement timing data, wherein the second timing data is indicative of the at least one portion of the content being associated with the second PTS; and

appending, to the at least one portion of the first manifest, the replacement timing data, wherein the replacement timing data is indicative of the at least one portion of the content being associated with the first PTS.

5. The method of claim 4 , wherein the first PTS is associated with a transcoder of the first origin computing device, and wherein the second PTS is associated with a transcoder of the second origin computing device.

6. The method of claim 1 , further comprising:

sending, by the second computing device, and based on the at least one portion of the first manifest and the replacement timing data, a request for the at least one portion of the content; and

receiving, by the second computing device via the second origin computing device, the at least one portion of the content.

7. The method of claim 1 , wherein modifying the at least one portion of the first manifest to include the replacement timing data comprises:

determining first period data associated with the first origin computing device and the first manifest;

determining second period data associated with the second origin computing device and the second manifest;

determining, based on the first period data and the second period data, replacement period data for a portion of the content, wherein the replacement timing data comprises the replacement period data; and

appending, to the at least one portion of the first manifest, the replacement timing data.

8. A method comprising:

receiving, by a first computing device, an indication of a disruption associated with at least one portion of content requested by a second computing device, via a first origin computing device, according to a first manifest associated with the first origin computing device;

determining, based on the disruption:

first period data associated with the first origin computing device and the first manifest, and

second period data associated with a second origin computing device and a second manifest associated with the content and the second origin computing device;

modifying, based on the first period data and the second period data, at least one portion of the first manifest to include replacement period data; and

sending, to the second computing device, the modified at least one portion of the first manifest comprising the replacement period data, wherein the modified at least one portion of the first manifest and the replacement period data cause the second computing device to receive the at least one portion of the content via the second origin computing device.

9. The method of claim 8 , wherein receiving the indication of the disruption comprises at least one of:

receiving, via the second computing device, a message indicating that the content is not available via the first origin computing device;

receiving, via the second computing device, a message comprising at least one network error associated with the first origin computing device; or

receiving a message indicating a request to communicate with the first origin computing device has timed out.

10. The method of claim 8 , wherein the replacement period data comprises a starting position for the at least one portion of the content based on the second period data.

11. The method of claim 8 , wherein the first period data comprises a starting position for the at least one portion of the content that at least partially differs from a starting position for the at least one portion of the content indicated by the second period data.

12. The method of claim 8 , further comprising:

appending, to the at least one portion of the first manifest, the replacement period data.

13. The method of claim 8 , wherein the at least one portion of the first manifest comprises at least one HTTP Live Streaming (HLS) timing element.

14. The method of claim 8 , further comprising:

receiving, from the first origin computing device prior to the disruption, a second portion of the first manifest; and

sending, to the second computing device prior to the disruption, the second portion of the first manifest, wherein the second portion of the first manifest causes the second computing device to receive, prior to the disruption, the content via the first origin computing device.

15. A method comprising:

receiving, by a first computing device, a first portion of a first manifest associated with at least one portion of content, wherein the first manifest is associated with a first origin computing device;

causing, based on the first portion of the first manifest, output of the at least one portion of the content received via the first origin computing device;

sending, to a second computing device, an indication of a disruption associated with the content;

receiving a second portion of the first manifest, wherein the second portion of the first manifest comprises a modified first manifest, wherein the first manifest is modified to include replacement timing data based on the first manifest and timing data associated with a second manifest associated with the content and a second origin computing device;

sending, based on the second portion of the first manifest and the replacement timing data, a request for an additional portion of the content; and

causing output of the additional portion of the content.

16. The method of claim 15 , wherein the indication of the disruption comprises at least one of:

a message indicating that the content is not available via the first origin computing device;

a message comprising at least one network error associated with the first origin computing device; or

a message indicating a request to communicate with the first origin computing device has timed out.

17. The method of claim 15 , wherein the second manifest comprises at least one of: a Dynamic Adaptive Streaming over HTTP timing element or an HTTP Live Streaming timing element.

18. The method of claim 15 , wherein the first portion of the first manifest comprises first timing data associated with the first origin computing device, wherein the second computing device determines the replacement timing data based on a first presentation time stamp (PTS) indicated by the first timing data and based on a second PTS indicated by the timing data associated with the second origin computing device, wherein the timing data associated with the second origin computing device is indicative of the additional portion of the content being associated with the second PTS, and wherein the replacement timing data comprises a timing element indicative of the additional portion of the content being associated with the first PTS.

19. The method of claim 18 , wherein the first PTS is associated with a transcoder of the first origin computing device, and wherein the second PTS is associated with a transcoder of the second origin computing device.

20. The method of claim 18 , wherein the replacement timing data comprises replacement period data comprising a starting position for the additional portion of the content based on the first timing data and the timing data associated with the second origin computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2020
From: ROSS, ADAM; BAXTER, LANDON; MORROW, ANDREW
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 054762/0449 →
Continuity (1)
Related Publication 20220201366A1 · Jun 23, 2022
References Cited (20)
US 6744815B1 · Sackstein · 2004 [cited by examiner]
US 9936229B1 · Wagenaar · 2018 [cited by examiner]
US 11140429B1 · Johnson · 2021 [cited by examiner]
US 20020067909A1 · Iivonen · 2002 [cited by examiner]
US 20130120590A1 · Clark · 2013 [cited by examiner]
US 20140059244A1 · Panje · 2014 [cited by examiner]
US 20140195631A1 · Pandit · 2014 [cited by examiner]
US 20150089557A1 · Busse · 2015 [cited by examiner]
US 20160248835A1 · Petrangeli · 2016 [cited by examiner]
US 20160373821A1 · Nair · 2016 [cited by examiner]
US 20170126256A1 · Salomons · 2017 [cited by examiner]
US 20170134466A1 · Giladi · 2017 [cited by examiner]
US 20180352274A1 · Pantos · 2018 [cited by examiner]
US 20190104326A1 · Stockhammer · 2019 [cited by examiner]
US 20200045351A1 · Paixao · 2020 [cited by examiner]
US 20210099746A1 · Sodagar · 2021 [cited by examiner]
US 20210385522A1 · Giladi · 2021 [cited by examiner]
US 20220038789A1 · Giladi · 2022 [cited by examiner]
US 20220070243A1 · Hartnett · 2022 [cited by examiner]
US 20220083628A1 · Mangalore · 2022 [cited by examiner]