IP Library Granted Patent US 11,729,451
Granted Patent B2
US 11,729,451 · App. 18/049,256 · Granted Aug 15, 2023

Systems and methods for encoding video content

Inventors: William David Amidei (San Diego, CA); Abhishek Shivadas (San Diego, CA); Kevin Dean-Yong Wu (San Diego, CA)
Assignee: DIVX, LLC
H04N21/2662H04L65/613H04L65/70H04L65/762H04N21/23439H04N21/26258H04N21/6379H04N21/8456H04L65/65H04L67/02H04N21/234363H04N21/234372H04N21/234381H04N21/6125
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 11,729,451
App. No.
18/049,256
Granted
Aug 15, 2023
Kind
B2
Abstract

Systems and methods for encoding a plurality of alternative streams of video content using multiple encoders in accordance with embodiments of the invention are disclosed. An encoding system includes multiple encoders. Each of the encoders receives a source stream of video content that is divided into portions. Each of the encoders generates portions of the plurality of alternative streams from the portions of the source stream. The portions of the alternative streams generated by a particular encoder are stored in a container for the particular encoder. Each encoder also generates index information for the portion of the alternative stream generated by the encoder that is stored in a manifest for the encoder.

Claims (52)

1. A method for encoding a plurality of alternative streams of video content from a source stream of video content using a plurality of encoders in an encoding system, the method comprising:

receiving a plurality of portions of a source stream of video content in each of a plurality of encoders in the encoding system;

wherein the plurality of encoders include N encoders where N is an integer;

wherein the plurality of portions of the source streams includes greater than N portions;

assigning each of the N encoders an Mth encoding order where M is an integer from 1 to N;

determining the Mth portion of the source stream received in each Mth one of the N encoders and every Nth portion received thereafter from the source stream as a set of portions of the source stream for the Mth encoder to encode in each of the N encoders;

encoding a portion of the plurality of alternative streams in each of the plurality of encoders using the determined sets of portions of the source stream received in each of the plurality of encoders;

storing the portion of the plurality of alternative streams encoded by each particular one of the plurality of encoders in a container for the particular one of the encoders;

generating index information for the portion of the alternative streams encoded by each particular one of the plurality of encoders; and

storing the index information in a manifest for the portion of the plurality of alternative streams generated by each of the particular encoders in a manifest of the particular one of the plurality of encoders.

2. The method of claim 1 , wherein the portion of the alternative streams encoded by each of the plurality of encoders is one of the plurality of alternative streams and the method further comprises:

receiving each of the plurality of portions of the source stream in each of the plurality of encoders;

encoding a segment of an alternative stream from each of the plurality of portions of the source streams to generate a plurality of segments of the alternative stream in each of the plurality of encoders where each particular alternative stream generated by each particular one of the plurality of encoders has a particular set of parameters;

generating index information for each of the plurality of segments generated by a particular one of the plurality of encoders in each particular one of the plurality of encoders; and

storing the index information generated by each particular one of the plurality of encoders in a manifest for the particular one of the plurality of encoders to generate a plurality of manifests.

3. The method of claim 2 , wherein an alternative stream from the plurality of alternative streams generated by a particular one of the plurality of encoders has a particular maximum bitrate as a parameter.

4. The method of claim 2 , wherein at least two alternative streams from the plurality of alternative streams generated by different ones of the plurality of encoders have a same maximum bitrate and at least one other parameter that is different.

5. The method of claim 4 wherein the at least one other parameter is selected from a group of parameters consisting of aspect ratio, frame rate, and resolution.

6. The method of claim 1 :

wherein the encoding of a portion includes encoding each portion in the set of portions from the source stream of the Mth encoder into plurality of segments where each of the plurality of segments is a segment in one of the plurality of alternative streams in each of the N encoders;

wherein the generating of the index information includes generating index information for each of the plurality of segments generated for each of the portions from the set of portions of the Mth encoder in each of the N encoders; and

wherein the storing of the index information includes storing the index information for each of the plurality of segments generated from each portion in the set of portions by the Mth encoder in a manifest for the Mth encoder using each of the N encoders.

7. The method of claim 6 , further comprising discarding each of the portions from the plurality of portions that is not in the set of portions for the Mth encoder in each of the N encoders.

8. The method of claim 1 , wherein the manifest further includes information indicating when at least one of the encoded portions is available for streaming.

9. An encoding system for encoding a plurality of alternative streams of video content from a source stream of video content comprising:

at least one processor;

memory accessible by the at least one processor; and

instructions stored in the memory that when read by the at least one processor direct the processor to:

provide a plurality of encoders where each of the plurality of encoders is directed to:

receive a plurality of portions of a source stream of video content;

wherein the plurality of encoders include N encoders where N is an integer;

wherein the plurality of portions of the source streams includes greater than N portions;

assign each of the N encoders an Mth encoding order where M is an integer from 1 to N;

determine the Mth portion of the source stream received in each Mth one of the N encoders and every Nth portion received thereafter from the source stream as a set of portions of the source stream for the Mth encoder to encode in each of the N encoders;

encode a portion of the plurality of alternative streams using the determine sets of portions of the source stream;

store the portion of the plurality of alternative streams encoded in a container particular to the encoder;

generate index information for the portion of the alternative streams encoded by the encoder; and

store the index information in a manifest for the portion of the plurality of alternative streams generated by the encoder.

10. The encoding system of claim 9 , wherein the portion of the alternative streams encoded by each of the plurality of encoders is one of the plurality of alternative streams and each of the plurality of encoders is further directed to:

receive each of the plurality of portions of the source stream;

encode a segment of a particular alternative stream from each of the plurality of portions of the source streams to generate a plurality of segments of the alternative stream where each particular alternative stream has particular parameters;

generate index information for each of the plurality of segments generated; and

store the index information generated in a manifest for the particular encoder of the plurality of encoders.

11. The encoding system of claim 10 , wherein the alternative stream from the plurality of streams generated by a particular one of the plurality of encoders has a particular maximum bitrate as a parameter.

12. The encoding system of claim 10 , wherein at least two of the alternative streams from the plurality of alternative streams generated by different ones of the plurality of encoders have a same maximum bitrate and at least one other parameter that is different.

13. The encoding system of claim 12 , wherein the at least one other parameter is selected from a group of parameters consisting of aspect ratio, frame rate, and resolution.

14. The encoding system of claim 9 , wherein each of the N encoders is further directed to:

encode each portion in the set of portions from the source stream of the into plurality of segments where each of the plurality of segments is a segment in one of the plurality of alternative streams;

generate index information for each of the plurality of segments generated for each of the portions from the set of portions of the Mth encoder; and

store the index information for each of the plurality of segments generated from each portion in the set of portions in a manifest for the Mth encoder.

15. The encoding system of claim 14 , wherein each of the N encoders is further directed to discard each of the portions from the plurality of portions that is not in the set of portions for the Mth encoder.

16. The method of claim 9 , wherein the manifest further includes information indicating when at least one of the encoded portions is available for streaming.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2023
From: AMIDEI, WILLIAM DAVID; SHIVADAS, ABHISHEK; WU, KEVIN DEAN-YONG
To: SONIC IP, INC.
Reel/Frame 062925/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2023
From: SONIC IP, INC.
To: DIVX CF HOLDINGS LLC
Reel/Frame 062925/0720 →
CHANGE OF NAME Recorded Mar 8, 2023
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 062925/0739 →
Continuity (5)
Continuation 17343453 · Jun 9, 2021
Continuation 16819865 · Mar 16, 2020
Continuation 16208210 · Dec 3, 2018
Continuation 15183562 · Jun 15, 2016
Related Publication 20230136780A1 · May 4, 2023