Transloadit – Realtime Video Encoding on Amazon EC2
Whereas prior transcoding solutions waited for the entire video to be uploaded, Transloadit runs the encoding process directly on the incoming data stream, using the popular node.js library to capture each chunk of the file as it is uploaded, piping it directly into the also-popular ffmpeg encoder. Because transcoding is almost always faster than uploading, the video is ready to go shortly after the final block has been uploaded. As Felix noted in his email to me, “Since Ec2 can encode videos much faster than most people can upload them, that essentially cuts the encoding time to 0.”
Felix told me that they implemented Transloading using a number of AWS services including EC2, Elastic Load Balancing, Elastic Block Storage, and Amazon S3. They have found that the c1.medium instance type delivers the best price/performance for their application, and are very happy that their Elastic Load Balancer can deliver data to the instances with minimal delay. They are able to deploy data directly to a customer’s S3 bucket, and are looking in to Multipart Upload and larger objects.