IP Library Granted Patent US 9,560,393
Granted Patent B2
US 9,560,393 · App. 14/627,528 · Granted Jan 31, 2017

Media processing node

Inventors: James A. Malone (Burbank, CA); Lawrence Anthony (Malibu, CA); Philip Richards (Pasadena, CA)
Assignee: Disney Enterprises, Inc.
H04N21/234309G06F9/45558G06F2009/45562
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,560,393
App. No.
14/627,528
Granted
Jan 31, 2017
Kind
B2
Abstract

Systems, methods and articles of manufacture for transcoding media content. Embodiments include receiving a request to perform a transcoding operation on a first instance of media content. The transcoding operation is divided into a plurality of sub-operations. Embodiments select one of a plurality of transcoding profiles for use in performing the transcoding operation. Additionally, embodiments configure a plurality of virtual machine instances to perform the plurality of sub-operations, based on configuration information specified within the selected transcoding profile. Execution of the plurality of sub-operations is initiated using the configured plurality of virtual machine instances to produce a plurality of encoded fragments. Embodiments then combine the plurality of encoded fragments to produce an encoded instance of media content.

Claims (73)

1. A method, comprising:

receiving a request to perform a transcoding operation on a first instance of media content;

dividing, by operation of one or more computer processors, the transcoding operation into a plurality of sub-operations, each of the sub-operations processing a respective portion of the first instance of media content;

selecting one of a plurality of transcoding profiles for use in performing the transcoding operation, wherein each of the plurality of transcoding profiles relates to a respective transcoding operation and specifies configuration information for performing the respective transcoding operation;

configuring a plurality of virtual machine instances to perform the plurality of sub-operations, based on configuration information specified within the selected transcoding profile, comprising:

dynamically determining the number of the plurality of virtual machine instances based on the selected transcoding profile and available system resources;

allocating an respective amount of the available system resources to each of the plurality of virtual machine instances, based on the selected transcoding profile and the corresponding sub-operation performed by the virtual machine instance; and

deploying each of the plurality of virtual machine instances with the respective amount of system resources;

initiating an execution of the plurality of sub-operations using the configured plurality of virtual machine instances to produce a plurality of encoded fragments of the first instance of media content; and

combining, by operation of the one or more computer processors, the plurality of encoded fragments to produce an encoded instance of the first instance of media content.

2. The method of claim 1 , further comprising:

monitoring the execution of the plurality of sub-operations on the plurality of virtual machine instances; and

based on the monitoring, optimizing a configuration of one of the plurality of virtual machine instances based on the configuration information specified within the selected transcoding profile.

3. The method of claim 2 , wherein optimizing a configuration of one of the plurality of virtual machine instances based on the configuration information specified within the selected transcoding profile further comprises:

splitting one of the plurality of sub-operations into two or more sub-operations; and

allocating the two or more sub-operations across two or more of the plurality of virtual machine instances, based on a load balancing algorithm.

4. The method of claim 2 , wherein optimizing a configuration of one of the plurality of virtual machine instances based on the configuration information specified within the selected transcoding profile further comprises:

moving the execution of one of the plurality of sub-operations from a first virtual machine instance of the plurality of virtual machine instances to a second virtual machine instance of the plurality of virtual machine instances.

5. The method of claim 2 , further comprising:

storing configuration data describing the optimized configuration of the virtual machine instance, for use in optimizing subsequent transcoding operations.

6. The method of claim 1 , further comprising:

generating an optimized transcoding schedule for transcoding the first instance of media content, from a first video encoding format to a second video encoding format, based on generated metadata describing the first instance of media content,

wherein initiating an execution of the plurality of sub-operations using the configured plurality of virtual machine instances to produce a plurality of encoded fragments is performed according to the optimized transcoding schedule.

7. The method of claim 6 , wherein generating an optimized transcoding schedule for transcoding the first instance of media content, from a first video encoding format to a second video encoding format, based on generated metadata describing the first instance of media content, further comprises:

determining a plurality of shots within the first instance of media content; and

analyzing the first instance of media content to generate metadata describing the media content, wherein the generated metadata includes, for each of the plurality of shots, data describing a plurality of frames within the respective shot.

8. The method of claim 7 , wherein analyzing the instance of video content further comprises:

determining, for each of the plurality of shots, a measure of motion within the plurality of frames within the respective shot, and

wherein the generated metadata includes the determined measure of motion for each of the plurality of frames.

9. A non-transitory computer-readable medium containing computer program code that, when executed, performs an operation comprising:

receiving a request to perform a transcoding operation on a first instance of media content;

dividing the transcoding operation into a plurality of sub-operations, each of the sub-operations processing a respective portion of the first instance of media content;

selecting one of a plurality of transcoding profiles for use in performing the transcoding operation, wherein each of the plurality of transcoding profiles relates to a respective transcoding operation and specifies configuration information for performing the respective transcoding operation;

configuring a plurality of virtual machine instances to perform the plurality of sub-operations, based on configuration information specified within the selected transcoding profile, comprising:

dynamically determining the number of the plurality of virtual machine instances based on the selected transcoding profile and available system resources;

allocating an respective amount of the available system resources to each of the plurality of virtual machine instances, based on the selected transcoding profile and the corresponding sub-operation performed by the virtual machine instance; and

deploying each of the plurality of virtual machine instances with the respective amount of system resources;

initiating an execution of the plurality of sub-operations using the configured plurality of virtual machine instances to produce a plurality of encoded fragments of the first instance of media content; and

combining the plurality of encoded fragments to produce an encoded instance of the first instance of media content.

10. The non-transitory computer-readable medium of claim 9 , the operation further comprising:

monitoring the execution of the plurality of sub-operations on the plurality of virtual machine instances; and

based on the monitoring, optimizing a configuration of one of the plurality of virtual machine instances based on the configuration information specified within the selected transcoding profile.

11. The non-transitory computer-readable medium of claim 10 , wherein optimizing a configuration of one of the plurality of virtual machine instances based on the configuration information specified within the selected transcoding profile further comprises:

splitting one of the plurality of sub-operations into two or more sub-operations; and

allocating the two or more sub-operations across two or more of the plurality of virtual machine instances, based on a load balancing algorithm.

12. The non-transitory computer-readable medium of claim 10 , wherein optimizing a configuration of one of the plurality of virtual machine instances based on the configuration information specified within the selected transcoding profile further comprises:

moving the execution of one of the plurality of sub-operations from a first virtual machine instance of the plurality of virtual machine instances to a second virtual machine instance of the plurality of virtual machine instances.

13. The non-transitory computer-readable medium of claim 10 , the operation further comprising:

storing configuration data describing the optimized configuration of the virtual machine instance, for use in optimizing subsequent transcoding operations.

14. The non-transitory computer-readable medium of claim 9 , the operation further comprising:

generating an optimized transcoding schedule for transcoding the first instance of media content, from a first video encoding format to a second video encoding format, based on generated metadata describing the first instance of media content,

wherein initiating an execution of the plurality of sub-operations using the configured plurality of virtual machine instances to produce a plurality of encoded fragments is performed according to the optimized transcoding schedule.

15. The non-transitory computer-readable medium of claim 14 , wherein generating an optimized transcoding schedule for transcoding the first instance of media content, from a first video encoding format to a second video encoding format, based on generated metadata describing the first instance of media content, further comprises:

determining a plurality of shots within the first instance of media content; and

analyzing the first instance of media content to generate metadata describing the media content, wherein the generated metadata includes, for each of the plurality of shots, data describing a plurality of frames within the respective shot.

16. The non-transitory computer-readable medium of claim 15 , wherein analyzing the instance of video content further comprises:

determining, for each of the plurality of shots, a measure of motion within the plurality of frames within the respective shot, and

wherein the generated metadata includes the determined measure of motion for each of the plurality of frames.

17. A system, comprising:

a processor; and

a memory containing a program that, when executed by operation of the processor, performs an operation comprising:

receiving a request to perform a transcoding operation on a first instance of media content;

dividing the transcoding operation into a plurality of sub-operations, each of the sub-operations processing a respective portion of the first instance of media content;

selecting one of a plurality of transcoding profiles for use in performing the transcoding operation, wherein each of the plurality of transcoding profiles relates to a respective transcoding operation and specifies configuration information for performing the respective transcoding operation;

configuring a plurality of virtual machine instances to perform the plurality of sub-operations, based on configuration information specified within the selected transcoding profile, comprising:

dynamically determining the number of the plurality of virtual machine instances based on the selected transcoding profile and available system resources;

allocating an respective amount of the available system resources to each of the plurality of virtual machine instances, based on the selected transcoding profile and the corresponding sub-operation performed by the virtual machine instance; and

deploying each of the plurality of virtual machine instances with the respective amount of system resources;

initiating an execution of the plurality of sub-operations using the configured plurality of virtual machine instances to produce a plurality of encoded fragments of the first instance of media content; and

combining the plurality of encoded fragments to produce an encoded instance of the first instance of media content.

18. The system of claim 17 , the operation further comprising:

monitoring the execution of the plurality of sub-operations on the plurality of virtual machine instances; and

based on the monitoring, optimizing a configuration of one of the plurality of virtual machine instances based on the configuration information specified within the selected transcoding profile.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2015
From: MALONE, JAMES A.; ANTHONY, LAWRENCE; RICHARDS, PHILIP
To: DISNEY ENTERPRISES, INC.
Reel/Frame 034996/0173 →
Continuity (1)
Related Publication 20160249079A1 · Aug 25, 2016