Does Amazon’s Cloud Transcoding Service Make Sense for You?
Last week, Amazon released a cloud video transcoding service called Amazon Elastic Transcoder. The service is priced at a significant discount compared to other cloud transcoding services, such as Zencoder, that run on Amazon Web Services.
Many in the twittersphere have buzzed that the low prices spell trouble for Amazon's competitors, but I would argue that this isn't the case. The decision about what encoding solution to use is determined by more than price. For some companies, particularly those dealing with user-submitted video, Amazon's service could be a godsend. For others, with more complicated needs like closed captioning support and HLS video encoding, the service will be worth keeping an eye on, but not something to adopt quite yet.
Let's look at why transcoding in the cloud can make sense, who it’s a fit for, and what factors you should consider if you are evaluating competing cloud transcoding services.
Why Transcoding in the Cloud?
Encoding video is a computationally intensive job. As soon as you have to process more than a couple of videos at once and output them into multiple formats, a queue starts to build up. If you need those output files quickly, this queue can be reduced by running your jobs in parallel. There are two broad approaches to doing this:
1. Run more encoders locally (hardware or software based). The problem with this approach is that it can be costly and inefficient. First, you pay for hardware / software upfront, and incur the cost of managing it. Second, you must either provision capacity for peak loads, which means that your investment sits idle much of the time, or provision less capacity than you need at peak times, and then determine what an acceptable queue is.
2. Use a cloud transcoding service. These highly scalable services offer almost limitless capacity, so you can transcode a large number of videos into multiple formats at the same time. These services tend to offer pay-per-use pricing (per minute of video encoded, or per GB of video processed). This can improve the ROI of your encoding solution because there is no up-front investment or hardware that sits idle. The biggest drawback is the time spent uploading source footage into the cloud.
Who Benefits from Cloud Transcoding?
The speed and scalability of the cloud sounds great, but it’s not for everybody with an encoding job to do. I would argue that cloud transcoding services make the most sense for workflows with the following characteristics:
1. A large volume of material that needs to be processed. Small volumes of video are probably best managed using Compressor, Media Encoder, or whatever other encoding software is readily available.
2. Applications where long queue times are unacceptable. If delivery isn’t time sensitive, it may make more sense to run a batch job overnight when your workstations are idle.
3. Routine output formats. If you are delivering video to clients, and each one requires something different (don’t you hate it when someone asks for a .wmv?), you may be better off encoding locally, as cloud services are optimized for automated workflows.
4. Output is meant for the web. Cloud services are typically optimized to output files for web distribution. A major benefit of having the output files in the cloud is that they can easily be pushed to their final destination without having to upload all of them.
Applications like user-generated video sites (YouTube, Vimeo), websites that publish lots of video, and online video platforms are a perfect fit for cloud transcoding. Some of these have rolled their own service, while others use commercial services like Zencoder, Encoding.com, and now Amazon.
Cloud transcoding also makes a lot of sense for broadcasters, cable companies, and large production companies that are looking to encode libraries of content into multiple formats for the web. For example, Discovery turned to Encoding.com to prepare video for streaming for its cable channels, and PBS makes heavy use of Zencoder’s service. Likewise, Netflix uses the cloud to encode video from its content providers into approximately 120 different versions to support a vast array of devices and connection speeds.
What about freelance video editors and small production houses and post shops? It probably makes the most sense to encode video locally using their preferred encoding software. For most of these users, the volume is too low and the workflow is too variable to justify spending the time to figure out how to integrate cloud encoding into their workflow.
Deciding on a Cloud Transcoding Service
If a cloud video transcoding service sounds like a fit for your needs, how do you decide which one to use? I’ll try to highlight some of the important considerations by using Zencoder and Amazon’s new service as a case study. These aren’t the only two services out there, but I’m familiar with both, and I think they represent the two poles in terms of price and flexibility.
Price is an important consideration, but not the only one. I’ll start with this one because it’s where Amazon’s recent announcement has focused the debate.
Amazon has definitely positioned itself as the low-cost provider in this space. With Amazon, you pay $0.015 per minute of SD video encoded, and $0.03 per minute of HD video in its East Region (pricing is nominally higher in other regions).
Zencoder charges $0.05 per minute of SD video (HD is double the price) for its pay-per-use tier. On the high volume plan with a monthly commitment of $2,000, Zencoder works out to $0.02 per minute of SD video encoded and $0.04 per minute of HD.
Once you hit volumes somewhere beyond 100,000 minutes per month, Zencoder likely offers lower prices than Amazon.
When making any decision about encoding, it's critical to make sure that the service you would like to use is going to support the input and output formats that are required for your workflow.
Input Formats. Amazon's format support is somewhat ambiguous. Amazon's FAQ says:
We support popular web, consumer and professional media formats. Examples include 3GP, AAC, AVI, FLV, MP4 and MPEG-2.
An earlier version of this post incorrectly cited a lack of input format support as a drawback to Amazon's service. However, as one reader noted (thanks, @videograndpa), the service supports DNxHD and WMV and potentially other important formats. You will want to do some testing or independent verification to see if it supports the input formats you need. Zencoder and Encoding.com make the decision process a bit easier by listing all of the input formats that they support.
Output Formats. For those who are transcoding video for web delivery, the fact that Amazon's service will only support H.264/AAC/MP4 output won't be much of a problem.
A minority of people will need WebM support to support HTML5 video playback in Firefox, but this number is dwindling now that Mozilla is working on adding H.264 support to Firefox on the desktop (mobile Firefox already supports it).
For people that want to offer adaptive bitrate streaming, the that fact that Amazon's service will not create segmented output files for HLS streaming to iOS devices could be a problem. While you can still output all the files you need and run them through Apple's stream segmenting tool, this will take more steps than using Zencoder, which can automatically output optimized MPEG-TS segments for HTTP live streaming.
Encoding Speed and Queues.
Another important factor to consider when deciding which transcoding service to use is the encoding time. This can be broken down into the time spent in a queue and the processing time.
Zencoder looks like it could offer some advantages in terms of queue times. When you upload a video, encoding into all of the requested output formats begins simultaneously. If Zencoder needs more servers to process your videos, then it will automatically spin up additional server instances. In my own experience, Zencoder appears to work actively to keep queue times as low as possible.
Amazon works slightly differently. You can create up to four encoding pipelines per account. These are essentially encoding queues. Jobs in a pipeline are processed in the order that they are received. While a single pipeline can process more than one job at a time, it looks like there is a fairly finite limit to the number of files that you can process in parallel. A cause for slight worry here is Amazon's own FAQ about encoding times which states "if a large number of jobs are received they are backlogged (queued)."
At this point, I haven't had enough time to test whether there are any significant differences in processing times between the services once the jobs have started. Actual encoding times would be impacted by the types of Amazon server instances that are used for each service. Given that Amazon and Zencoder both talk about faster-than-real-time processing and will be operating at a significant scale, I wouldn't expect too many differences here, but time and testing will tell.
Bottom line on this is that if you will regularly be processing many jobs in parallel and need to keep queue times low, Zencoder may be a better bet.
Some other factors to take into consideration when looking at the various cloud transcoding services include:
Closed captioning support. The FCC requires programming that is shown on TV to offer closed captioning support when it is shown on the web. Zencoder offers closed captioning support and Amazon does not.
Live event transcoding. Zencoder is offering a beta of a service that will offer live adaptive bit-rate transcoding. Amazon's transcoding service does not offer this, although you could process media for live streaming by using one of its Flash media streaming instances.
Video watermarking. This can be used to overlay an image over a video for branding or security purposes. Amazon does not offer this, while other transcoding services generally do.
DRM support. Zencoder will package video for Widevine and BuyDRM encryption schemes. With Amazon, this packaging would be done separately.
Customer support. AWS offers paid support services that may apply to its transcoding service. Otherwise, you'll have to do some reading and digging through forums. Zencoder offers email and web-based chat support for all customers, and phone support for those on its enterprise plans. In my experience, their support has been fantastic.
Ease of use. Since most customers interact with their cloud transcoding service via API, it’s important to take a look at how easy it is to use, and how flexible it is. In our experience at ScreenLight, Zencoder has one of the most developer friendly API’s out there.
SLA. Amazon's transcoding service is in beta and does not have an SLA. Zencoder offers a 99.9% uptime guarantee, and expanded SLA’s for its enterprise customers.
What Service Should I Use?
The answer to this question varies based on your own needs.
Before selecting a service, you should define your define your requirements, understand the trade-offs, and test the different options.
A user-generated video site may be happy with Amazon and its relatively low cost, whereas a broadcast customer with very specific workflow requirements, such as a need for HLS video delivery and closed captioning support, may be better off with a service like Zencoder.