IP Library Granted Patent US 10,205,970
Granted Patent B2
US 10,205,970 · App. 15/261,167 · Granted Feb 12, 2019

System, apparatus and method to facilitate live video streaming

Inventors: Nils Oliver Krahnstoever (Brookline, MA); Thomas Edward DeWeese (Boxborough, MA); Michael A. Glover (Durham, NH)
Assignee: GOOGLE LLC
H04N21/2183H04N21/2187H04N21/23116H04N21/23424H04N21/242H04N21/631H04N21/6405H04N21/8358H04N21/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 10,205,970
App. No.
15/261,167
Granted
Feb 12, 2019
Kind
B2
Abstract

Systems and methods for generating a master video stream from at least two live video streams are provided in this disclosure. The systems include a combination component that combines the live video streams to generate the master video stream. In one aspect, the live video streams can be copies of the same recording that are multicast from different locations according to User Datagram Protocol. The live video streams suffer different errors, such as stream corruption or stream error, due to the transmission. The combination component eliminates the errors in the live video streams due to transmission and creates a substantially error-free master video stream.

Claims (48)

1. A computer-implemented method of streaming video, the method comprising:

receiving a plurality of live video streams of an event from a plurality of data sources:

assigning, for each respective data source, a weight based on at least an originating location associated with each respective data source:

identifying, for a live video stream from the plurality of live video streams, errors and error-free segments included in the live video stream;

identifying, for each identified error segment from the live video stream, a corresponding error-free segment included in another live video stream from the plurality of live video streams;

selecting, the identified error-free segments included in the other live video streams to replace the identified error segments from the live video stream based on the weights assigned to data sources corresponding to the other live video streams:

combining the identified error-free segments included in the live video stream and the selected error-free segments from the other live video streams to generate a master video stream that lacks error segments; and

publishing the master video stream responsive to the combination of the identified error free segments included in the live video stream and the selected error-free segments from the other live video streams.

2. The computer-implemented method of claim 1 , wherein an error segment from the live video stream is missing or corrupt.

3. The computer-implemented method of claim 1 , wherein identifying the corresponding error-free segment comprises:

synchronizing the live video stream and other live video streams of the plurality of live video streams.

4. The computer-implemented method of claim 3 , wherein synchronizing comprises:

matching fingerprints of segments of the live video stream with fingerprints of segments included in the other live video streams.

5. The computer-implemented method of claim 4 , wherein each fingerprint includes metadata associated with a set of data packets of the segment that is associated with the fingerprint.

6. The computer-implemented method of claim 5 , wherein the metadata includes a hash code of each segment and wherein matching fingerprints comprises:

comparing hash codes of the segments of the live video stream with hash codes of the segments of the other live video streams to identify matching pairs of segments; and retrieving a corresponding error-free segment for each matching pairs of segments responsive to the identification of the matching pairs of segments.

7. The computer-implemented method of claim 3 , further comprising:

matching the segments of the live video stream with the segments of the other live video streams using video content based similarity metrics.

8. A computer program product comprising a non-transitory computer-readable storage medium storing executable code for streaming video, the code when executed causes one or more computer processors to perform steps comprising:

receiving a plurality of live video streams of an event from a plurality of data sources:

assigning, for each respective data source, a weight based on at least a reliability value associated with each respective data source:

identifying, for a live video stream from the plurality of live video streams, errors and error-free segments included in the live video stream;

identifying, for each identified error segment from the live video stream, a corresponding error-free segment included in another live video stream from the plurality of live video streams;

selecting, the identified error-free segments included in the other live video streams to replace the identified error segments from the live video stream based on the weights assigned to data sources corresponding to the other live video streams;

combining the identified error-free segments included in the live video stream and the selected error-free segments from the other live video streams to generate a master video stream that lacks error segments; and

publishing the master video stream responsive to the combination of the identified error-free segments included in the live video stream and the selected error-free segments from the other live video streams.

9. The computer program product of claim 8 , wherein an error segment from the live video stream is missing or corrupt.

10. The computer program product of claim 8 , wherein identifying the corresponding error-free segment comprises:

synchronizing the live video stream and other live video streams of the plurality of live video streams.

11. The computer program product of claim 10 , wherein synchronizing comprises:

matching fingerprints of segments of the live video stream with fingerprints of segments included in the other live video streams.

12. The computer program product of claim 11 , wherein each fingerprint includes metadata associated with a set of data packets of the segment that is associated with the fingerprint.

13. The computer program product of claim 12 , wherein the metadata includes a hash code of each segment and wherein matching fingerprints comprises:

comparing hash codes of the segments of the live video stream with hash codes of the segments of the other live video streams to identify matching pairs of segments; and retrieving a corresponding error-free segment for each matching pairs of segments responsive to the identification of the matching pairs of segments.

14. The computer program product of claim 10 , wherein the code when executed by the one or more computer processors further causing the one or more processors to perform steps comprising:

matching the segments of the live video stream with the segments of the other live video streams using video content based similarity metrics.

15. A computer system for streaming video, the computer system comprising:

one or more computer processors; and a non-transitory computer-readable storage medium storing executable code, the code when executed causes one or more computer processors to perform steps comprising:

receiving a plurality of live video streams of an event from a plurality of data sources:

assigning, for each respective data source, a weight based on at least a load associated with each respective data source;

identifying, for a live video stream from the plurality of live video streams, errors and error-free segments included in the live video stream;

identifying, for each identified error segment from the live video stream, a corresponding error-free segment included in another live video stream from the plurality of live video streams;

selecting, based on a weight associated with each of the other live video streams, the identified error-free segments included in the other live video streams to replace the identified error segments from the live video stream based on the weights assigned to data sources corresponding to the other live video streams;

combining the identified error-free segments included in the live video stream and the selected error-free segments from the other live video streams to generate a master video stream that lacks error segments; and

publishing the master video stream responsive to the combination of the identified error-free segments included in the live video stream and the selected error-free segments from the other live video streams.

16. The computer system of claim 15 , wherein an error segment from the live video stream is missing or corrupt.

17. The computer system of claim 15 , wherein identifying the corresponding error-free segment comprises:

synchronizing the live video stream and other live video streams of the plurality of live video streams.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2016
From: KRAHNSTOEVER, NILS OLIVER; DEWEESE, THOMAS; GLOVER, MICHAEL
To: GOOGLE INC.
Reel/Frame 039690/0742 →
Continuity (2)
Continuation 13445588 · Apr 12, 2012
Related Publication 20160381397A1 · Dec 29, 2016
Cited By (1)
US 12,348,794