IP Library Granted Patent US 9,800,639
Granted Patent B2
US 9,800,639 · App. 15/362,217 · Granted Oct 24, 2017

Performance-based selection of infrastructure service providers to provide adaptive streaming video

Inventor: Michael Gordon (Paradise Valley, AZ)
Assignee: DLVR, Inc.
H04L65/601H04L65/80H04N21/23439H04N21/2402H04N21/8456
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,800,639
App. No.
15/362,217
Granted
Oct 24, 2017
Kind
B2
Abstract

Techniques for serving a manifest file of an adaptive streaming video include receiving a request for the manifest file from a user device. The video is encoded at different reference bitrates and each encoded reference bitrate is divided into segments to generate video segment files. The manifest file includes an ordered list of universal resource locators (URLs) that reference a set of video segment files encoded at a particular reference bitrate. A source manifest file that indicates the set of video segment files is identified based on the request. An issued manifest file that includes a first URL and a second URL is generated based on the source manifest file. The first URL references a first domain and the second URL references a second domain that is different from the first domain. The issued manifest file is transmitted to the user device as a response to the request.

Claims (62)

1. A method of selecting infrastructure service providers to provide adaptive streaming video, comprising:

receiving, by a performance management server, data metrics corresponding to a transmission of one or more video segment files from a first infrastructure service provider to one or more recipient devices, the video segment files corresponding to a portion of a first adaptive streaming video, wherein at least a portion of the first adaptive streaming video is not provided by the first infrastructure service provider, but is provided by one or more infrastructure service providers operated separately from the first infrastructure service provider;

determining, by the performance management server, one or more performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider, based on the received data metrics corresponding to the transmission of the video segment files from the first infrastructure service provider to the one or more recipient devices;

receiving, by the performance management server, a request for data relating to a manifest file to be created for a second adaptive streaming video;

selecting, by the performance management server, one or more infrastructure service providers to provide at least a portion of the second adaptive streaming video, based on the determined performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider; and

transmitting, by the performance management server, in response to the request, data identifying the one or more infrastructure service providers selected to provide at least a portion of the second adaptive streaming video.

2. The method of claim 1 , wherein each of the video segment files transmitted from the first infrastructure service provider to the one or more recipient devices is interspersed within one or more additional video segment files transmitted from the infrastructure service providers operated separately from the first infrastructure service provider to the one or more recipient devices.

3. The method of claim 1 , wherein determining the performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider comprises:

determining that a shift from one bandwidth version of the first adaptive streaming video to another bandwidth version of the first adaptive streaming video has been initiated by a recipient device of the first adaptive streaming video; and

attributing the shift to a second infrastructure service provider operated separately from the first infrastructure service provider.

4. The method of claim 1 , wherein determining the performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider comprises:

detecting, based on video segment file requests transmitted from a first recipient device of the first adaptive streaming video, to the first infrastructure service provider, that a buffering event occurred at the first recipient device; and

attributing the buffering event to a second infrastructure service provider operated separately from the first infrastructure service provider.

5. The method of claim 1 , wherein determining the performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider comprises:

detecting a failure of a second infrastructure service provider operated separately from the first infrastructure service provider.

6. The method of claim 5 , wherein detecting the failure of the segment file server of the second infrastructure service provider comprises:

receiving, by the performance management server, data corresponding to a first request for a first video segment file transmitted from a first recipient device to the first infrastructure service provider;

determining, by the performance management server, that the first request includes a first URL corresponding to a primary URL within a first manifest file for the first adaptive streaming video;

receiving, by the performance management server, data corresponding to a second request for a second video segment file transmitted from the first recipient device to the first infrastructure service provider;

determining, by the performance management server, that the second request includes a second URL corresponding to a failover URL within the first manifest file for the first adaptive streaming video; and

determining, by the performance management server, that the second infrastructure service provider failed to provide at least a portion of the first adaptive streaming video in between the first video segment file and the second video segment file.

7. The method of claim 1 , wherein the received request is a request for a manifest file for the second adaptive streaming video, and wherein the method further comprises:

configuring a manifest file including one or more Uniform Resource Locators (URLs) referencing video segment files corresponding to portions of the second adaptive streaming video, wherein the video segment files referenced by the URLs are provided by a second infrastructure service provider operated separately from the first infrastructure service provider.

8. The method of claim 7 , wherein configuring the manifest file comprises interspersing URLs referencing a first domain associated with the first infrastructure service provider between URLs referencing a second domain associated with the second infrastructure service provider.

9. The method of claim 8 , wherein the URLs referencing the first domain are interspersed at periodic intervals within the manifest file.

10. A system comprising one or more computer servers configured to select infrastructure service providers to provide adaptive streaming video, the one or more computer servers, comprising:

a processing unit including one or more processors; and

memory coupled with and readable by the processing unit and storing therein a set of instructions which, when executed by the processing unit, cause the one or more computer servers to:

receive data metrics corresponding to a transmission of one or more video segment files from a first infrastructure service provider to one or more recipient devices, the video segment files corresponding to a portion of a first adaptive streaming video, wherein at least a portion of the first adaptive streaming video is not provided by the first infrastructure service provider, but is provided by one or more infrastructure service providers operated separately from the first infrastructure service provider;

determine one or more performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider, based on the received data metrics corresponding to the transmission of the video segment files from the first infrastructure service provider to the one or more recipient devices;

receive a request for data relating to a manifest file to be created for a second adaptive streaming video;

select one or more infrastructure service providers to provide at least a portion of the second adaptive streaming video, based on the determined performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider; and

transmit, in response to the request, data identifying the one or more infrastructure service providers selected to provide at least a portion of the second adaptive streaming video.

11. The system of claim 10 , wherein each of the video segment files transmitted from the first infrastructure service provider to the one or more recipient devices is interspersed within one or more additional video segment files transmitted from the infrastructure service providers operated separately from the first infrastructure service provider to the one or more recipient devices.

12. The system of claim 10 , wherein determining the performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider comprises:

determining that a shift from one bandwidth version of the first adaptive streaming video to another bandwidth version of the first adaptive streaming video has been initiated by a recipient device of the first adaptive streaming video; and

attributing the shift to a second infrastructure service provider operated separately from the first infrastructure service provider.

13. The system of claim 10 , wherein determining the performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider comprises:

detecting, based on video segment file requests transmitted from a first recipient device of the first adaptive streaming video, to the first infrastructure service provider, that a buffering event occurred at the first recipient device; and

attributing the buffering event to a second infrastructure service provider operated separately from the first infrastructure service provider.

14. The system of claim 10 , wherein determining the performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider comprises:

detecting a failure of a second infrastructure service provider operated separately from the first infrastructure service provider.

15. The system of claim 14 , wherein detecting the failure of the second infrastructure service provider comprises:

receiving data corresponding to a first request for a first video segment file transmitted from a first recipient device to a segment file server of the first infrastructure service provider;

determining that the first request includes a first URL corresponding to a primary URL within a first manifest file for the first adaptive streaming video;

receiving data corresponding to a second request for a second video segment file transmitted from the first recipient device to the segment file server of the first infrastructure service provider;

determining that the second request includes a second URL corresponding to a failover URL within the first manifest file for the first adaptive streaming video; and

determining that the second infrastructure service provider failed to provide at least a portion of the first adaptive streaming video in between the first video segment file and the second video segment file.

16. The system of claim 10 , wherein the received request is a request for a manifest file for the second adaptive streaming video, and wherein the memory stores further instructions which, when executed by the processing unit, cause the one or more computer servers to:

configure a manifest file including one or more Uniform Resource Locators (URLs) referencing video segment files corresponding to portions of the second adaptive streaming video, wherein the video segment files referenced by the URLs are provided by a second infrastructure service provider operated separately from the first infrastructure service provider.

17. The system of claim 16 , wherein configuring the manifest file comprises interspersing URLs referencing a first domain associated with the first infrastructure service provider between URLs referencing a second domain associated with the second infrastructure service provider.

18. A non-transitory computer-readable memory comprising a set of instructions stored therein which, when executed by a processing unit, causes the processing unit to select infrastructure service providers to provide adaptive streaming video by:

receiving data metrics corresponding to a transmission of one or more video segment files from a first infrastructure service provider to one or more recipient devices, the video segment files corresponding to a portion of a first adaptive streaming video, wherein at least a portion of the first adaptive streaming video is not provided by the first infrastructure service provider, but is provided by one or more infrastructure service providers operated separately from the first infrastructure service provider;

determining one or more performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider, based on the received data metrics corresponding to the transmission of the video segment files from the first infrastructure service provider to the one or more recipient devices;

receiving a request for data relating to a manifest file to be created for a second adaptive streaming video;

selecting one or more infrastructure service providers to provide at least a portion of the second adaptive streaming video, based on the determined performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider; and

transmitting in response to the request, data identifying the one or more infrastructure service providers selected to provide at least a portion of the second adaptive streaming video.

19. The computer-readable memory of claim 18 , wherein each of the video segment files transmitted from the first infrastructure service provider to the one or more recipient devices is interspersed within one or more additional video segment files transmitted from the infrastructure service providers operated separately from the first infrastructure service provider to the one or more recipient devices.

20. The computer-readable memory of claim 18 , wherein determining the performance metrics associated with the one or more infrastructure service providers operated separately from the first infrastructure service provider comprises at least one of:

determining that a shift from one bandwidth version of the first adaptive streaming video to another bandwidth version of the first adaptive streaming video has been initiated by a recipient device of the first adaptive streaming video;

detecting, based on video segment file requests transmitted from a first recipient device of the first adaptive streaming video, to the first infrastructure service provider, that a buffering event occurred at the first recipient device; or

detecting a failure of a second infrastructure service provider operated separately from the first infrastructure service provider.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2025
From: DLVR, INC.
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 071414/0658 →
CONVERSION Recorded Jun 13, 2025
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 071574/0546 →
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 →
SECURITY INTEREST Recorded Aug 30, 2021
From: DLVR, INC.
To: AKITA INVESTMENTS LLC
Reel/Frame 057326/0430 →
SECURITY INTEREST Recorded Feb 5, 2020
From: DLVR, INC.
To: AKITA INVESTMENTS LLC
Reel/Frame 051725/0613 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2016
From: GORDON, MICHAEL
To: DLVR, INC.
Reel/Frame 040707/0005 →
Continuity (4)
Continuation 14925693 · Oct 28, 2015
Continuation In Part 14709171 · May 11, 2015
Provisional Application 62072265 · Oct 29, 2014
Related Publication 20170078350A1 · Mar 16, 2017