Amazon Scores Virtual Transcoding Patent

Amazon won a U.S. patent on Tuesday for an invention that uses virtual machines to speed the delivery of video programming for service providers.

“The system can automate the deployment, execution and delivery of the transcoding service on behalf of the transcoding provider and enable other users (e.g. content publishers, etc.) to use the transcoding services to transcode and/or otherwise process their content (e.g. audio, video, multimedia, and other data,” Amazon states in the patent, titled, “Virtual machine based content processing.”

Gabrielson
Gabrielson

Amazon Senior Principal Engineer Jacob Gabrielson is named as lead inventor on the patent, which Amazon filed in May 2012.

Abstract: A set of techniques is described for enabling a virtual machine based transcoding system. The system enables any transcoding provider to make their transcoding service available to other users over a network. The system can automate the deployment, execution and delivery of the transcoding service on behalf of the transcoding provider and enable other users to use the transcoding services to transcode content. The system receives a virtual machine image, transfers the image to a location where the media content is stored and creates a virtual private network of resources that will perform the transcoding of the media content. The virtual private network may be firewalled or otherwise restricted from opening connections with external clients when transcoding the content in order to prevent malicious use of the media content.

Patent

Claims: 

1. A computer implemented method for providing virtual machine based transcoding, said method comprising: receiving, by one or more computer systems, a request to transcode media content stored in a resource center; provisioning a virtual machine image to the resource center storing the media content; storing the virtual machine image on the resource center, the virtual machine image including at least an operating system and information for configuring virtual machines, the virtual machines configured to transcode media; creating a virtual private network of the virtual machines in the resource center based at least in part on the virtual machine image; restricting access between the virtual machines in the virtual private network and one or more external clients residing outside of the virtual private network based at least in part on the virtual machine image; enabling the virtual machines of the virtual private network to access the media content stored in the resource center; and causing the media content to be transcoded from a first format into a second format by the virtual machines of the virtual private network in the resource center.

2. The computer implemented method of claim 1, wherein the virtual machines of the virtual private network listen on a port and allow the media content to be posted over the port into a predetermined location accessible by the virtual machines, the media content being associated with a set of metadata that indicates the first format and the second format.

3. The computer implemented method of claim 1, wherein the virtual machines receive an input stream of the media content into the virtual private network in the first format and produce an output stream of the media content from the virtual private network in the second format.

4. The computer implemented method of claim 1, further comprising: metering the transcoding of the media content to determine a charge for a user associated with the media content based at least in part on the metering of the transcoding of the media content.

5. The computer implemented method of claim 1, wherein the virtual machine image is provided by a first user to a service provider and wherein the media content is provided by a second user to the service provider; and wherein the second user requests the service provider to transcode the media content by using a transcoding algorithm associated with the first user.

6. A computer implemented method, comprising: receiving, by one or more computer systems, a request to process content, the content stored in a location; transferring a system image or a portion of the system image to the location storing the content, the system image configured to instantiate virtual machine resources to receive input data and produce output data based at least in part on processing the input data; instantiate a virtual network of the virtual machine resources based at least in part on the system image or the portion of the system image; restrict access between the virtual machine resources in the virtual network and one or more external clients residing outside of the virtual network based at least in part on the system image; causing the system image or the portion of the system image to be installed on at least one virtual machine resource in the location storing the content based at least in part on the system image or the portion of the system image, the at least one virtual machine resource on the virtual network; and processing the content from a first format into a second format by virtual machine resources on the virtual network.

7. The computer implemented method of claim 6, further comprising: creating a virtual network of the virtual machine resources in the location; restricting access between the virtual machine resources of the virtual network and external entities that reside outside of the virtual network; and providing the content to the virtual machine resources in the virtual network.

8. The computer implemented method of claim 6, further comprising: selecting at least one virtual network of a plurality of existing virtual networks in the location; and processing the content by the virtual machine resources of the at least one virtual network.

9. The computer implemented method of claim 6, wherein the system image is provided by a transcoding provider to a first resource center of a service provider, and wherein the content is provided by a content publisher to a second resource center of a service provider.

10. The computer implemented method of claim 6, wherein processing the content further includes at least one of: transcoding the content, performing image recognition on the content, transmuxing the content, digital watermarking the content, segmenting the content, applying access controls on the content, adding meta data to the content, inserting advertisements into the content, translating the content into one or more languages, transcribing the content, changing bit rates of the content, sequencing the content, changing or adding audio associated with the content, data mining the content, or analyzing the content.

11. The computer implemented method of claim 6, further comprising: determining a prediction of demand for the virtual machine resources based at least in part on a history of requests for processing the content; and instantiating additional resources to match the prediction of demand.

12. The computer implemented method of claim 6, further comprising: receiving pricing information from a user associated with processing of the content; and computing a charge for a user associated with the content based at least in part on the pricing information.

13. The computer implemented method of claim 6, further comprising: enabling one or more users to provide a rating for the processing of the content performed by the virtual machine resources.

14. The computer implemented method of claim 6, wherein processing the content by on virtual machine resources further includes: monitoring the virtual machine resources to detect whether the virtual machine resources processing the content are malfunctioning or performing unintended actions.

15. A computing system, comprising: at least one processor; and memory including instructions that, when executed by the processor, cause the computing system to: receive a request to process content, the content stored in a first location; retrieve a system image from a second location that is remotely located with respect to the first location, the system image configured to instantiate virtual machine resources to execute the algorithm; determine a virtual network of the virtual machine resources in the first location based at least in part on the system image, the virtual network limiting access based at least in part on whether the virtual machine resources reside outside of the virtual network; and process the content from a first format into a second format by the virtual machine resources of the virtual network.

16. The computing system of claim 15, wherein determining a virtual network of the virtual machine resources further includes at least one of: instantiating a new virtual network of the virtual machine resources based at least in part on the system image; or selecting an existing virtual network of the virtual machine resources process the content.

17. The computing system of claim 15, wherein further comprising instructions that cause the computing system to: restricting access between the virtual machine resources of the virtual network and external entities that reside outside of the virtual network; and provide the content to the virtual machine resources in the virtual network.

18. The computing system of claim 15, wherein the system image is provided by a transcoding provider to a first resource center of a service provider, and wherein the content is provided by a content publisher to a second resource center of a service provider.

19. The computing system of claim 15, wherein processing the content further includes at least one of: transcoding the content, performing image recognition on the content, transmuxing the content, digital watermarking the content, segmenting the content, applying access controls on the content, adding meta data to the content, inserting advertisements into the content, translating the content into one or more languages, transcribing the content, changing bit rates of the content, sequencing the content, changing or adding audio associated with the content, data mining the content, or analyzing the content.

20. The computing system of claim 15, further comprising instructions that cause the computing system to: determine a prediction of demand for the virtual machine resources of the virtual network based at least in part on a history of requests for processing the content; and instantiate additional resources in the virtual network to match the prediction of demand.

21. The computing system of claim 15, further comprising instructions that cause the computing system to: meter content processed by the virtual network; and compute a charge for a user associated with the content based at least in part on the metering of the content processed by the virtual network.

22. A non-transitory computer readable storage medium storing one or more sequences of instructions executable by one or more processors to perform a set of operations comprising: receiving a virtual machine image in a first resource center, the virtual machine image configured to instantiate virtual machines capable of transforming content; receiving a request to transform the content stored in a second resource center; transmitting the virtual machine image to the second resource center storing the content; constructing or selecting a virtual network of the virtual machines in the second resource center based at least in part on the virtual machine image, the virtual network having restricted access to external resources that reside outside of the virtual network; enabling the virtual machines to access the content stored in the second resource center based at least in part on the virtual machine image; and transforming the content from a first format into a second format by the virtual machines of the virtual network.

23. The non-transitory computer readable storage medium of claim 22, wherein constructing the virtual network further includes: generating a firewall that restricts communications between the one or more virtual machines and external entities that reside outside of the virtual network; and providing the content to the virtual machines in the virtual network.

24. The non-transitory computer readable storage medium of claim 22, wherein the virtual machine image is provided by a transcoding provider to the first resource center of a service provider, and wherein the content is provided by a content publisher to the second resource center of a service provider.

25. The non-transitory computer readable storage medium of claim 22, wherein transforming the set of content further includes at least one of: transcoding the content, performing image recognition on the content, transmuxing the content, digital watermarking the content, segmenting the content, applying access controls on the content, adding meta data to the content, inserting advertisements into the content, translating the content into one or more languages, transcribing the content, changing bit rates of the content, sequencing the content, changing or adding audio associated with the content, data mining the content, or analyzing the content.

26. The non-transitory computer readable storage medium of claim 22, further comprising instructions for: determining a prediction of demand for the virtual machines of the virtual network based at least in part on a history of requests for transforming the content; and instantiating additional virtual machines in the virtual network to match the prediction of demand.

27. The non-transitory computer readable storage medium of claim 22, further comprising instructions for: metering the content transformed by the virtual network; and computing a charge for a user associated with the content based at least in part on the metering of the content transformed by the virtual network.