IP Library Granted Patent US 10,609,189
Granted Patent B2
US 10,609,189 · App. 15/898,852 · Granted Mar 31, 2020

Seamless stream failover with distributed manifest generation

Inventor: Ravikiran Patil (Los Angeles, CA)
Assignee: Verizon Digital Media Services Inc.
H04L69/40H04L65/601H04L67/02H04L65/4084H04L65/80
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,609,189
App. No.
15/898,852
Granted
Mar 31, 2020
Kind
B2
Abstract

A device for seamlessly distributing a media stream from different ingest devices of a delivery platform. The device fails over from a first ingest device to a second ingest device in response to one or more errors from attempts to retrieve parts of the media stream from the first ingest device prior to any signaling or messaging (e.g., an unpublish event) from the first ingest device indicating that the media stream has ended, is no longer available, or is otherwise removed from the first ingest device. The device also produces manifests identifying two or more bitrates for a media stream when each of the two or more bitrates is uploaded to and ingested by a different ingest device of the delivery platform.

Claims (38)

1. A method comprising:

receiving, from a first ingest device, a message indicating that a particular media stream is being uploaded to the first ingest device;

receiving, from a different second ingest device, a message indicating that the particular media stream is being uploaded to the second ingest device;

receiving a client request from a requesting device, the client request comprising a Uniform Resource Locator (URL) directed to the particular media stream;

issuing a first request to the first ingest device in response to receiving the client request;

issuing a second request to the first ingest device in response to an error resulting from the first request and determining that an upload of at least one segment or manifest of the particular media stream is not complete at the first ingest device; and

failing over from the first ingest device to the second ingest device in response to the error resulting from the first request and determining that the upload of the at least one segment or manifest is complete at the first ingest device, wherein failing over comprises withholding the error from the requesting device and issuing the second request to the second ingest device.

2. The method of claim 1 further comprising providing the requesting device with a segment or a manifest of the particular media stream upon receiving the segment or the manifest in response to issuing the first request or the second request.

3. The method of claim 1 further comprising determining that the upload of the at least one segment or manifest is complete as a result of successfully retrieving the at least one segment or manifest from the first ingest device prior to the client request.

4. The method of claim 1 further comprising providing the requesting device with the error in response to receiving the error from the first ingest device and the second ingest device after successfully retrieving one segment or manifest from at least one of the first ingest device and the second ingest device.

5. The method of claim 1 further comprising removing availability of the particular media stream at the first ingest device in response to a threshold number of consecutive errors resulting from at least the first and second requests issued to the first ingest device, and wherein said removing occurs prior to receiving an unpublish event for the particular media stream from the first ingest device.

6. The method of claim 1 , wherein the message from the first ingest device indicates availability of a first bitrate of the particular media stream at the first ingest device, and wherein the message from the second ingest device indicates availability of a different second bitrate of the particular media stream at the second ingest device.

7. The method of claim 6 further comprising providing a manifest for the particular media stream in response to a manifest request from the requesting device, wherein providing the manifest comprises generating the manifest with a first entry for the first bitrate based on the message from the first ingest device, and populating the manifest with a second entry for the second bitrate based on the message from the second ingest device.

8. The method of claim 1 further comprising generating a master manifest with a first bitrate and a second bitrate for the particular media stream based on the message from the first ingest device indicating availability of the first bitrate at the first ingest device and the message from the second ingest device indicating availability of the second bitrate at the second ingest device.

9. The method of claim 8 further comprising retrieving a first bitrate specific manifest for the particular media stream from the first ingest device, retrieving a second bitrate specific manifest for the particular stream from the second ingest device, and wherein the first bitrate specific manifest is generated by the first ingest device, the second bitrate specific manifest is generated by the second ingest device, and the master manifest is generated by a distribution device located between the requesting device and each of the first ingest device and the second ingest device.

10. The method of claim 8 further comprising distributing a segment of the particular media stream at the first bitrate from the first ingest device, and distributing a segment of the particular media segment at the second bitrate from the second ingest device.

11. The method of claim 1 further comprising selecting in response to receiving the client request, the first ingest device over the second ingest device based on a greater weight that is assigned to the first ingest device than the second ingest device.

12. The method of claim 1 further comprising selecting in response to receiving the client request, the first ingest device over the second ingest device based closer proximity to the first ingest device than the second ingest device.

13. The method of claim 1 further comprising selecting in response to receiving the client request, the first ingest device over the second ingest device based faster performance from the first ingest device than the second ingest device.

14. The method of claim 1 , wherein the error identifies availability of the particular media stream and unavailability of a specific segment or manifest of the particular media stream at the first ingest device.

15. A device of a media stream delivery platform, the device comprising:

a non-transitory computer-readable medium storing a set of processor-executable instructions; and

one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to:

receive, from a first ingest device, a message indicating that a particular media stream is being uploaded to the first ingest device;

receive, from a different second ingest device, a message indicating that the particular media stream is being uploaded to the second ingest device;

receive a client request from a requesting device, the client request comprising a Uniform Resource Locator (URL) directed to the particular media stream;

issue a first request to the first ingest device in response to receiving the client request;

issue a second request to the first ingest device in response to an error resulting from the first request and determining that an upload of at least one segment or manifest of the particular media stream is not complete at the first ingest device; and

fail over from the first ingest device to the second ingest device in response to the error resulting from the first request and determining that the upload of the at least one segment or manifest is complete at the first ingest device, wherein failing over comprises withholding the error from the requesting device and issuing the second request to the second ingest device.

16. The device of claim 15 , wherein the processor-executable instructions further include processor-executable instructions to remove availability of the particular media stream at the first ingest device in response to a threshold number of consecutive errors resulting from at least the first and second requests issued to the first ingest device, and wherein said removing occurs prior to receiving an unpublish event for the particular media stream from the first ingest device.

17. A non-transitory computer-readable medium, storing a set of processor-executable instructions, which, when executed by one or more processors of a device associated with a delivery platform, cause the one or more processors to:

receive, from a first ingest device, a message indicating that a particular media stream is being uploaded to the first ingest device;

receive, from a different second ingest device, a message indicating that the particular media stream is being uploaded to the second ingest device;

receive a client request from a requesting device, the client request comprising a Uniform Resource Locator (URL) directed to the particular media stream;

issue a first request to the first ingest device in response to receiving the client request;

issue a second request to the first ingest device in response to an error resulting from the first request and determining that an upload of at least one segment or manifest of the particular media stream is not complete at the first ingest device; and

fail over from the first ingest device to the second ingest device in response to the error resulting from the first request and determining that the upload of the at least one segment or manifest is complete at the first ingest device, wherein failing over comprises withholding the error from the requesting device and issuing the second request to the second ingest device.

18. The non-transitory computer-readable medium of claim 17 , wherein the processor-executable instructions further include processor-executable instructions to provide a manifest indicating availability of the particular media stream at a first bitrate based on the message from the first ingest device, and availability of the particular media stream at a second bitrate based the message from the second ingest device.

Assignments (11)
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0406] Recorded Jul 9, 2025
From: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
To: UPLYNK, INC. (F/K/A EDGIO, INC.)
Reel/Frame 071875/0105 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 065597/0212] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071817/0877 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2025
From: UPLYNK, INC. (F/K/A EDGIO, INC.)
To: LYNROCK LAKE MASTER FUND LP
Reel/Frame 071817/0974 →
RELEASE OF PATENT SECURITY AGREEMENT [RECORDED AT REEL/FRAME 068763/0276] Recorded Jul 3, 2025
From: LYNROCK LAKE MASTER FUND LP
To: UPLYNK, INC. (F/K/A EDGIO, INC.); MOJO MERGER SUB, LLC
Reel/Frame 071818/0022 →
PATENT SECURITY AGREEMENT Recorded Aug 23, 2024
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 068763/0276 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER]
Reel/Frame 065597/0212 →
PATENT SECURITY AGREEMENT Recorded Nov 15, 2023
From: EDGIO, INC.; MOJO MERGER SUB, LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065597/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: EDGECAST INC.
To: EDGIO, INC.
Reel/Frame 061738/0972 →
CHANGE OF NAME Recorded Mar 15, 2022
From: VERIZON DIGITAL MEDIA SERVICES INC.
To: EDGECAST INC.
Reel/Frame 059367/0990 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2018
From: PATIL, RAVIKIRAN
To: VERIZON DIGITAL MEDIA SERVICES INC.
Reel/Frame 044964/0540 →
Continuity (1)
Related Publication 20190260859A1 · Aug 22, 2019