There are many instances where cloud encoding is both efficient and cost-effective. For example, if you’re working with files already saved to the cloud — perhaps for archival purposes, perhaps because you’re distributing content contributed by others — you avoid the upload time that is the Achilles’ heel of video on demand (VOD) cloud encoding. In addition, if you experience a spike in encoding demand, say to re-encode a library of content for distribution to a new device, cloud encoding is also a great option.
At the other end of the spectrum, many smaller producers encode in the cloud to avoid having to buy, install, and maintain an on-premise VOD encoder. All potential cloud users face the same question: how to choose from the many potential service providers. As you’ve probably guessed from the title and engaging intro, that’s what I’ll cover in this article. Specifically, I’ll cover which questions you need to ask before choosing a cloud encoding server for your VOD encodes.
Does It Need to Interface With Your Existing Encoding Facilities (If Any)?
If you’re seeking cloud encoding to augment your on-premise encoding capabilities, you should choose a cloud provider that can control or integrate your on-premise and cloud system from a single interface. For example, you can control Elemental Cloud from the same interface as its hardware encoders, perhaps pushing files to the cloud when the queue time for your on-premise systems reaches a certain benchmark. Several other vendors, including Telestream and Sorenson Media, offer similar integration.
Working with the APIs provided by many cloud providers, you may be able to manually program some interaction between your cloud and on-premise encoders, even if the encoders are from different vendors. Either way, if you need the systems to work together, identify the level of integration that you need, and make sure your candidate cloud providers can deliver it early in the evaluation process.
Which Business Model Are You Seeking?
The next question is about the business model that you want to engage, which varies all over the map. For example, you can rent a CPU instance from Amazon and install your own encoding tool, which meets the technical definition of cloud encoding. This model has several advantages, including the fact that you have a dedicated resource for your encoding chores without buying additional hardware. On the other hand, as compared to other models, you have to buy, install, and support the software, so you still need the same level of technical expertise, and there’s no easy way to scale encoding capabilities.
Most cloud providers use the SaaS model. In this case, you upload your files to the service and they encode your files, with pricing based on factors such as gigabytes of input/output, minutes of encoding video, and monthly or annual commitment levels. The service provider acquires the CPU instances and develops and manages the encoding software, saving significant capital expenditure (CAPEX) and software and hardware maintenance. They also supply the necessary encoding expertise, so you don’t need your own in-house compression expert.
The primary disadvantage of the SaaS model is that you don’t have dedicated resources for your jobs, so you might have to wait a few minutes to start encoding. There’s also a potential security risk from this shared use. On the other hand, given the big-name clients that the larger cloud encoding facilities tout on their websites, it’s hard to imagine that either of these disadvantages are significant concerns for the vast majority of users.
Still, if you absolutely, positively need to start encoding the instant you upload the file, the platform-as-a-service (PaaS) approach used by Elemental might be worth considering. In this model, you reserve and pay for specific encoding instances, so when you upload the file, the resources are there, guaranteed. The disadvantage of this approach is cost, since you’ll have to pay to reserve these resources even if you don’t encode any files.
Once you choose the model, there are multiple housekeeping-type considerations. Let’s work through those.
Does the Cloud Facility Accept Your Inputs and Produce the Required Outputs?
Virtually all cloud services will accept plain-Jane MP4 input, but if you’ll be uploading ProRes or Avid DNxHD, better make sure that your candidate services support these. Ditto for native camera formats, old file formats such as VP6 and WMV, and any other out-of-the-ordinary formats.
On the output side, virtually all services output H.264 encoded files in the MP4 container format, and many support adaptive output in HTTP Live Streaming (HLS) and HTTP Dynamic Streaming (HDS) formats. In contrast, support for Smooth Streaming, or extensive caption or digital rights management (DRM) technologies, are much less prevalent. Ditto for the extensive metadata support needed for syndication and distribution.
Similarly, make sure your candidate services can retrieve your files from where they are located — whether on-premises, via FTP, or in the cloud — and deliver them to where you want them to go. This not only includes delivery to your own storage facilities, on-premise or in the cloud, but also delivery to other services such as YouTube or online delivery platforms.
What Type of User Interface Do You Need?
Cloud customers run the gamut from casual, nontechnical users to three-letter networks with the programming resources to fully integrate the cloud encoding facility with their own digital asset management (DAM) and content management systems (CMSs). Make sure your candidate services support the interface that you require.
For example, Zencoder only works via its API, making it a poor candidate for a low-volume, nontechnical user. At the other end of the spectrum, Elemental’s cloud offering uses the same browser-based interface as its on-premise products, which is highly usable and robust. Most other cloud services are somewhere in between. If you’re looking for ease of use, run some test encodes to make sure you find the controls usable and comprehensive and to ensure that critical capabilities, such as preset management, are handled effectively.
If you’re a high-volume operation that will work primarily via the service’s API, have your technical personnel review the API to determine its robustness. In particular, if you need linkage to a particular DAM or CMS, check for plug-ins, SDKs, or other evidence that you candidate cloud service supports the level of integration that you require.
What’s the Pricing Schema
Then, of course, there’s pricing, which also runs the gamut. For example, Encoding.com and HeyWatch charge by gigabyte of throughput, in and out, with Encoding.com offering premium pricing for faster encoding speeds. Zencoder and Amazon prices are based on minutes of encoded video, with Amazon also differentiating based on whether your source is SD or HD. Elemental’s pricing is based on CPU and GPU usage and uptime, which is closer to the traditional cloud model. All vendors offer price breaks based on volume and commitment level.
Obviously, these variances complicate pricing comparisons. Minute-based and volume-based pricing are the easiest to estimate. Most vendors list their pricing online; simply estimate your volume in gigabytes or minutes, choose a commitment level, and compute your estimated cost. If you’re considering a PaaS vendor such as Elemental, estimating pricing from afar is less possible; you’ll likely have to share your unique requirements with the vendor and gain estimated pricing directly from them.
What About Performance?
In reviewing cloud vendors such as Encoding.com and Elemental, I ran multiple comparison tests with these two vendors, plus Zencoder and Amazon. As you can see in Table 1, these tests involved three test cases: the first a 52-minute 1080p file to 11 presets, the second a 210-minute SD file to a single preset, and the third, six 848×480 files with a duration around 45 minutes to 11 presets. Note that the Amazon results for the first test were so poor that I didn’t attempt the third test. As with all things cloud related, substantial explanation is necessary to bring perspective to these comparisons.
First, I ran each test between five and six times, at various times and days of the week, and averaged the last three encoding times for the table. With Encoding. com, I ran all tests using the twin turbo mode, which ensures the fastest possible encoding but adds $2 per gigabyte to the pricing. With Elemental, I ran the tests with all CPU instances up and running, which would be very expensive for companies that don’t encode files 24/7. It takes about 5 minutes to start a CPU instance, so you would have to add this to each Elemental result if you were running the system in the most cost-effective manner and only starting CPU instances when necessary for specific encoding tasks.
Speaking of 5-minute waits, Encoding.com was the only SaaS system where I experienced a queue time, particularly on several Sunday night encodes when (I’m guessing) overall demand was light and very few CPU instances were up and running. However, since these weren’t in the last three encoding runs for Encoding.com, these wait times were not reflected in Encoding.com’s results. All that being said, while faster is always better, the performance by all services other than Amazon would certainly be sufficient for all but the largest and most time-sensitive producers.
Of course, encoding time is only one aspect of overall encoding. If you’re uploading large files to the facility, upload time can take much longer than the actual encoding. In this regard, most services offer one or more upload acceleration techniques, typically via technology such as that from Aspera. Since my test files were all located in the cloud, this capability was not reflected in the results shown in Table 1.
Along a similar vein, some cloud encoding services, including Zencoder, can start encoding while the file is being uploaded, so the encoding can be completed soon after the upload is finished. Again, since my source files were in the cloud, Zencoder’s results don’t reflect this capability.
Overall, most cloud services allow you to run free trials. If performance is an important consideration for you, run your own performance comparisons using the test cases most relevant to your use.
What About Quality?
All cloud providers will naturally tout their services as producing the absolute best possible video quality. I’ve run extensive tests using three different test scenarios and saw very little difference between the contenders. That’s largely because most cloud vendors use the x264 codec, so you would expect very similar results from these services. The main exception is Elemental, which uses its own H.264 codec, but it’s been competing against x264 with its on-premise systems for so long that the quality is nearly identical.
The bottom line is that I wouldn’t see quality as a major differentiating factor between the major candidates.