IP Library › Granted Patent US 10,218,826
Granted Patent B2
US 10,218,826 · App. 15/810,312 · Granted Feb 26, 2019

Scalable, live transcoding with support for adaptive streaming and failover

Inventors: Krishnan Eswaran (Oakland, CA); Thierry Foucu (San Jose, CA); Jie Sun (Pleasanton, CA); Krishna Kumar Gadepalli (Fremont, CA); Vijnan Shastri (Palo Alto, CA)
Assignee: GOOGLE LLC
H04L69/40H04L29/06523H04L65/4015H04L65/602H04L65/607H04L67/2804H04N21/2343H04N21/23106H04N21/234309H04N21/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,218,826
App. No.
15/810,312
Granted
Feb 26, 2019
Kind
B2
Abstract

A method includes separating, using a separation component, a plurality of input streams into a plurality of audio streams having different bitrates and a plurality of video streams having different bitrates; transcoding, using an audio transcoder, the plurality of audio streams into a plurality of transcoded audio streams having different transcode qualities; transcoding, using a video transcoder, the plurality of video streams into a plurality of transcoded video streams having different transcode qualities; segmenting, using a segmentation component, the plurality of audio streams into a plurality of equivalent audio segments based on identified segment boundaries associated with the plurality transcoded audio streams and the plurality of video streams into a plurality of equivalent video segments based on identified segment boundaries associated with the plurality of transcoded video streams; and joining, using a conjoining component, the plurality of equivalent audio segments and the plurality of video segments into a single stream.

Claims (38)

1. A method comprising:

separating, using a separation component, a plurality of input streams into a plurality of audio streams having different bitrates and a plurality of video streams having different bitrates;

transcoding, using an audio transcoder, the plurality of audio streams into a plurality of transcoded audio streams having different transcode qualities;

transcoding, using a video transcoder, the plurality of video streams into a plurality of transcoded video streams having different transcode qualities;

segmenting, using a segmentation component, the plurality of audio streams into a plurality of equivalent audio segments based on identified segment boundaries associated with the plurality transcoded audio streams and the plurality of video streams into a plurality of equivalent video segments based on identified segment boundaries associated with the plurality of transcoded video streams; and

joining, using a conjoining component, the plurality of equivalent audio segments and the plurality of video segments into a single stream.

2. The method of claim 1 , further comprising transcoding, using the audio transcoder, the plurality of audio streams in parallel with a delay for each audio stream and transcoding, using the video transcoder, the plurality of video streams in parallel with a delay for each video stream.

3. The method of claim 2 , further comprising adjusting, using the audio transcoder, the delay for transcoding the plurality of audio streams for different audio streams and adjusting using the video transcoder, the delay for transcoding the plurality of video streams for different video streams.

4. The method of claim 2 , wherein the delay for transcoding the plurality of audio streams and the delay for transcoding the plurality of video streams are adaptive according to a latency of processing in respective input streams of the plurality of input streams.

5. The method of claim 1 , further comprising attributing, using an attribute component, metadata to the plurality of input streams that preserves attributes of an input stream respectively, the attributes including original timestamps of the equivalent audio segments and the equivalent video segments respectively.

6. The method of claim 5 , further comprising attaching, using the attribute component, original starting and ending timestamps to each of the equivalent audio segments and each of the equivalent video segments.

7. The method of claim 1 , wherein the identified segment boundaries indicate starts of each audio segment and video segment.

8. A system comprising:

a processor for executing instructions; and

a non-transitory computer readable medium storing instructions executable to perform steps comprising:

separating a plurality of input streams into a plurality of audio streams having different bitrates and a plurality of video streams having different bitrates;

transcoding the plurality of audio streams into a plurality of transcoded audio streams having different transcode qualities;

transcoding the plurality of video streams into a plurality of transcoded video streams having different transcode qualities;

segmenting the plurality of audio streams into a plurality of equivalent audio segments based on identified segment boundaries associated with the plurality transcoded audio streams and the plurality of video streams into a plurality of equivalent video segments based on identified segment boundaries associated with the plurality of transcoded video streams; and

joining the plurality of equivalent audio segments and the plurality of video segments into a single stream.

9. The system of claim 8 , wherein the non-transitory computer readable medium stores instructions executable to perform steps further comprising transcoding the plurality of audio streams in parallel with a delay for each audio stream and transcoding the plurality of video streams in parallel with a delay for each video stream.

10. The system of claim 9 , wherein the non-transitory computer readable medium stores instructions executable to perform steps further comprising adjusting the delay for transcoding the plurality of audio streams for different audio streams and adjusting the delay for transcoding the plurality of video streams for different video streams.

11. The system of claim 9 , wherein the delay for transcoding the plurality of audio streams and the delay for transcoding the plurality of video streams are adaptive according to a latency of processing in respective input streams of the plurality of input streams.

12. The system of claim 8 , wherein the non-transitory computer readable medium stores instructions executable to perform steps further comprising attributing metadata to the plurality of input streams that preserves attributes of an input stream respectively, the attributes including original timestamps of the equivalent audio segments and the equivalent video segments respectively.

13. The system of claim 12 , wherein the non-transitory computer readable medium stores instructions executable to perform steps further comprising attaching original starting and ending timestamps to each of the equivalent audio segments and each of the equivalent video segments.

14. The system of claim 8 , wherein the identified segment boundaries indicate starts of each audio segment and video segment.

15. A non-transitory computer readable storage medium comprising computer executable instructions that, in response to execution, cause a processor to perform operations comprising:

identifying a plurality of segment boundaries within an interval of input streams of a plurality of input streams;

separating the plurality of input streams into a plurality of audio streams having different bitrates and a plurality of video streams having different bitrates;

transcoding the plurality of audio streams into a plurality of transcoded audio streams having different transcode qualities;

transcoding the plurality of video streams into a plurality of transcoded video streams having different transcode qualities;

segmenting the plurality of audio streams into a plurality of equivalent audio segments based on identified segment boundaries associated with the plurality transcoded audio streams and the plurality of video streams into a plurality of equivalent video segments based on identified segment boundaries associated with the plurality of transcoded video streams; and

joining the plurality of equivalent audio segments and the plurality of video segments into a single stream.

16. The computer readable storage medium of claim 15 , further comprising transcoding the plurality of audio streams in parallel with a delay for each audio stream and transcoding the plurality of video streams in parallel with a delay for each video stream.

17. The computer readable storage medium of claim 16 , further comprising adjusting the delay for transcoding the plurality of audio streams for different audio streams and adjusting the delay for transcoding the plurality of video streams for different video streams.

18. The computer readable storage medium of claim 16 , wherein the delay for transcoding the plurality of audio streams and the delay for transcoding the plurality of video streams are adaptive according to a latency of processing in respective input streams of the plurality of input streams.

19. The computer readable storage medium of claim 15 , further comprising attributing metadata to the plurality of input streams that preserves attributes of an input stream respectively, the attributes including original timestamps of the equivalent audio segments and the equivalent video segments respectively.

20. The computer readable storage medium of claim 19 , further comprising attaching original starting and ending timestamps to each of the equivalent audio segments and each of the equivalent video segments.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2017
From: ESWARAN, KRISHNAN; FOUCU, THIERRY; SUN, JIE; GADEPALLI, KRISHNA KUMAR; SHASTRI, VIJNAN
To: GOOGLE LLC
Reel/Frame 044271/0880 →
Continuity (3)
Continuation 14971997 · Dec 16, 2015
Continuation 13444787 · Apr 11, 2012
Related Publication 20180069950A1 · Mar 8, 2018
Cited By (3)
US 12,633,300 US 12,726,642 US 12,732,614