IP Library Granted Patent US 10,750,216
Granted Patent B1
US 10,750,216 · App. 15/591,005 · Granted Aug 18, 2020

Method and apparatus for providing peer-to-peer content delivery

Inventors: Ismail R. Haritaoglu (Palo Alto, CA); Oztan Harmanci (Mountain View, CA); Cihat Goktug Gurler (San Jose, CA)
Assignee: GOOGLE LLC
H04N21/238H04L65/4084H04L67/06H04L67/1085H04L67/1097H04L67/288H04N21/44209
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,750,216
App. No.
15/591,005
Granted
Aug 18, 2020
Kind
B1
Abstract

A computer implemented method embodied in a computer program stored in non-transient memory and executed by a computer processor for providing peer to peer content delivery of a live video stream includes delaying delivery of a live stream to a second client to serve that client from a first client that has previously received the live stream. The computer implemented method may further include switching between bad content sources (first clients) to good content sources based on heuristics.

Claims (32)

1. A computer implemented method for providing peer to peer content delivery and executed by a computer processor of a manifest server, comprising:

receiving, at the manifest server, a first request for video content delivery of live-stream video content from a first video player, wherein the live-stream video content is associated with a first manifest file created by an encoder for the live-stream video content, and wherein the live-stream video content and the first manifest file are distributed to a content delivery network;

upon receiving the request, communicating with the content delivery network to obtain, from the content delivery network, the first manifest file containing information for allowing the first video player to play the live-stream video content stored at the content delivery network;

customizing, at the manifest server for the first video player, the first manifest file, the customized first manifest file identifying at least one of the first video player or a user of the first video player and also identifying the content delivery network for the live-stream video content delivery to cause the live-stream video content to be provided to the first video player from the content delivery network;

receiving, at the manifest server, information on available segments of the live-stream video content at the first video player as the segments are being provided to the first video player from the content delivery network;

receiving, at the manifest server, a second request for video content delivery of the live-stream video content from a second video player, which has not yet received the live-stream video content due to a delay introduced to facilitate a peer-to-peer content delivery of the live-stream video content;

determining, by the manifest server and based on the information on the available segments of the live-stream video content at the first video player, whether the first video player is to be used as a content delivery source for the second request of the second video player; and

upon determining that the first video player is to be used as the content delivery source for the second request of the second video player, providing, by the manifest server, a customized second manifest file that has been customized for the second video player, the customized second manifest file identifying the first video player for the video content delivery to cause the live-stream video content to be provided to the second video player from the first video player.

2. The method of claim 1 , wherein providing the live-stream video content to the second video player from the first video player is delayed for a defined time period.

3. The method of claim 2 , wherein the defined time period is at least one video segment length plus a processing interval.

4. The method of claim 3 , wherein the processing interval is one second.

5. A system for providing peer to peer content delivery, the system comprising:

a memory; and

a computer processor, coupled to the memory, to:

receive, at a manifest server, a first request for video content delivery of live-stream video content from a first video player, wherein the live-stream video content is associated with a first manifest file created by an encoder for the live-stream video content, and wherein the live-stream video content and the first manifest file are distributed to a content delivery network;

upon receiving the request, communicate with the content delivery network to obtain, from the content delivery network, the first manifest file containing information for allowing the first video player to play the live-stream video content stored at the content delivery network;

customize, at the manifest server for the first video player, the first manifest file, the customized first manifest file identifying at least one of the first video player or a user of the first video player and also identifying the content delivery network for the live-stream video content delivery to cause the live-stream video content to be provided to the first video player from the content delivery network;

receive, at the manifest server, information on available segments of the live-stream video content at the first video player as the segments are being provided to the first video player from the content delivery network;

receive, at the manifest server, a second request for video content delivery of the live-stream video content from a second video player, which has not yet received the live-stream video content due to a delay introduced to facilitate a peer-to-peer content delivery of the live-stream video content;

determine, by the manifest server and based on the information on the available segments of the live-stream video content at the first video player, whether the first video player is to be used as a content delivery source for the second request of the second video player; and

upon determining that the first video player is to be used as the content delivery source for the second request of the second video player, provide, by the manifest server, a customized second manifest file that has been customized for the second video player, the customized second manifest file identifying the first video player for the video content delivery to cause the live-stream video content to be provided to the second video player from the first video player.

6. The system of claim 5 , wherein providing the live-stream video content to the second video player from the first video player is delayed for a defined time period.

7. The system of claim 6 , wherein the defined time period is at least one video segment length plus a processing interval.

8. The system of claim 7 , wherein the processing interval is one second.

9. A non-transitory computer-readable medium storing instructions, which when executed by a computer processor, cause the computer processor to perform operations comprising:

receiving, at a manifest server, a first request for video content delivery of live-stream video content from a first video player, wherein the live-stream video content is associated with a first manifest file created by an encoder for the live-stream video content, and wherein the live-stream video content and the first manifest file are distributed to a content delivery network;

upon receiving the request, communicating with the content delivery network to obtain, from the content delivery network, the first manifest file containing information for allowing the first video player to play the live-stream video content stored at the content delivery network;

customizing, at the manifest server for the first video player, the first manifest file, the customized first manifest file identifying at least one of the first video player or a user of the first video player and also identifying the content delivery network for the live-stream video content delivery to cause the live-stream video content to be provided to the first video player from the content delivery network;

receiving, at the manifest server, information on available segments of the live-stream video content at the first video player as the segments are being provided to the first video player from the content delivery network;

receiving, at the manifest server, a second request for video content delivery of the live-stream video content from a second video player, which has not yet received the live-stream video content due to a delay introduced to facilitate a peer-to-peer content delivery of the live-stream video content;

determining, by the manifest server and based on the information on the available segments of the live-stream video content at the first video player, whether the first video player is to be used as a content delivery source for the second request of the second video player; and

upon determining that the first video player is to be used as the content delivery source for the second request of the second video player, providing, by the manifest server, a customized second manifest file that has been customized for the second video player, the customized second manifest file identifying the first video player for the video content delivery to cause the live-stream video content to be provided to the second video player from the first video player.

Assignments (2)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2017
From: HARITAOGLU, ISMAIL R.; HARMANCI, OZTAN; GURLER, CIHAT GOKTUG
To: GOOGLE INC.
Reel/Frame 043613/0840 →
Continuity (1)
Provisional Application 62334163 · May 10, 2016
Cited By (1)
US 12,200,051