US 11,989,585 B1
Optimizing media transcoding based on licensing models
Jonathan B. Corley, Seattle, WA (US); Tal Saraf, Seattle, WA (US); and Bradley E. Marshall, Bainbridge Island, WA (US)
Assigned to AMAZON TECHNOLOGIES, INC., Reno, NV (US)
Filed by Jonathan B. Corley, Seattle, WA (US); Tal Saraf, Seattle, WA (US); and Bradley E. Marshall, Bainbridge Island, WA (US)
Filed on May 7, 2012, as Appl. No. 13/465,960.
Int. Cl. G06F 9/50 (2006.01); G06F 16/25 (2019.01)
CPC G06F 9/50 (2013.01) [G06F 9/5011 (2013.01); G06F 16/258 (2019.01)] 17 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
obtaining at least one first request to execute one or more transcoding jobs to transcode media content from a first format to a second format, the at least one first request associated with one or more parameters including at least one of (a) a time interval for completing the one or more transcoding jobs and (b) a value for performing the one or more transcoding jobs;
determining a relative weight to be applied to each of the one or more transcoding jobs, each relative weight based at least in part on the one or more parameters associated with the respective transcoding jobs and a server cost of one or more server resources under demand for the one or more transcoding jobs;
identifying a first number of compute instances comprising at least one compute instance for each of a plurality of transcoders capable of being provided by a set of computing resources, the at least one compute instance comprising the one or more server resources under demand for the one or more transcoding jobs, wherein each compute instance includes a processing capacity and memory;
allocating a first set of transcoding instances for the one or more transcoding jobs, the first set of transcoding instances selected from the first number of compute instances based at least in part on the relative weight associated with each of the one or more transcoding jobs, the demand for the one or more server resources, and the time interval for completing the one or more transcoding jobs, wherein each transcoding instance performs an execution of an individual transcoding job;
determining whether to delay, based at least in part on the demand for the one or more server resources, at least one of the one or more transcoding jobs allocated for the first set of transcoding instances;
transcoding, concurrently, within the one or more parameters, the media content of the one or more transcoding jobs into a specific format using the first set of transcoding instances;
obtaining an at least one second request to execute the one or more transcoding jobs;
determining a second relative weight associated with the one or more transcoding jobs of the at least one second request;
allocating a second set of transcoding instances for the one or more transcoding jobs in the at least one second request, the second set of transcoding instances selected from the first number of compute instances based at least in part on the relative weight associated with each of the one or more transcoding jobs of the first at least one request and the at least one second request, the demand for the one or more server resources, and the time interval, the second set of transcoding instances differing at least in part from the first set of transcoding instances;
allocating additional transcoding instances than are needed for the time interval, wherein a licensing cost has already been incurred for the additional transcoding instances;
transcoding, concurrently, the media content of the one or more transcoding jobs in the at least one second request into a specific format using the second set of transcoding instances and the additional transcoding instances; and
delaying reporting of a result of the one or more transcoding jobs to a user that requested the transcoding job until the time interval associated with the first request has elapsed.