Encoding.com: Streaming Media's Comprehensive Hands-On Review
Encoding.com was one of the first cloud encoding services, and, according to its website, it is the “World’s Largest Encoding Service.” For this reason, it was a natural for our first of several cloud encoding reviews. What I found was a service that was hard to beat: very good quality encoding, the fastest performance of the three services I tested, advanced features such as digital rights management (DRM) and closed captions, and a universal player feature (Vid.ly) that should prove compelling to many smaller web producers.
Getting Started With Encoding.com
As with most cloud encoding vendors, Encoding.com is optimized for use via an application programming interface (API), and a substantial bulk of its customers use the API rather than a browser-based user interface (UI). However, many users will test the service via the UI or will use the UI to help build or test their API scripts. The UI also provides a good framework for discussing Encoding.com’s features, so I’ll start my analysis and review there. Just keep in mind that all controls and capabilities that I’ll be demonstrating are accessible via the API.
Most encoding activities are built around a job, which can contain multiple input and output files. As shown in Figure 1, you can transfer files from a number of locations using multiple techniques, including Aspera acceleration. Input file support is very extensive, and it accommodates most common container formats and codecs, including Apple ProRes 422 and Apple ProRes 422 (HQ), Avid DNxHD, Sony’s DVCAM and XDCAM, DVCPro, and RED .r3d files.
Figure 1. Upload options in the Encoding.com UI
I ran all of my tests from various Amazon S3 buckets. Note that Encoding.com can’t use your secretkeyifithasa+or/signinit,whichmine did, though this wasn’t a problem with the other services that I tested, or the CloudBerry Explorer. According to Encoding.com, the problem lies in the differences between URL and URI encoding (see en.wikipedia.org/wiki/Percent-encoding), but whatever the source, it led to some failed encoding attempts until I contacted support and got the issue resolved. If you’re testing from an S3 account, keep this in mind if your initial upload attempts fail.
Once you choose your file, you choose your output format(s) and encoding preset(s). For single files, output formats include H.264 in an MP4 or FLV wrapper, WebM, VP6, Ogg Theora, and Windows Media. Encoding.com can also output encoded audio and video, as well as manifest files for Apple’s HTTP Live Streaming (HLS), Adobe’s HTTP Dynamic Streaming (HDS), and Microsoft’s Smooth Streaming. Another output is Vid.ly, Encoding.com’s service that supplies a single URL or embed code for adaptive playback to an extensive range of devices. More on Vid.ly later.
Watch folder operation is pretty standard; you create a watch folder, assign presets, and turn the watch folder on. One frustration is that the shortest watch interval is 5 minutes, and there’s no way to immediately trigger encoding; you have to wait 5 minutes to test the function. This exacerbates another problem with the UI: the inability to test an address for file input or output, such as the “test connection” button that you see with many FTP tools.
On the plus side, H.264 encoding parameters are extensive, particularly if you enable the codec advanced options flag, which exposes most critical configuration options available for the x264 codec used by the service. Few users will need this level of customization, but it’s nice to know that it’s there.
Encoding-related features are extensive. For example, Encoding.com supports CEA-608 and CEA-708 captions, which the service can input from a range of sources, including captions embedded into MPEG-2, MP4, advanced systems format, and 3GP files, as well as Timed Text (TT), scenarist closed caption (SCC), distribution format exchange profile (DFXP), synchronized accessible media interchange (SAMI), and SCC sidecar files. Output options include embedded captions in MP4, MPEG-2, and HLS files and MP4/3GP and MOV files with SCC, subrip text (SRT), and TT sidecar files. Captions are exclusively available in the API, so I couldn’t test these functions.
For DRM, Encoding.com supports the usual suspects: advanced encryption standard (AES) 128-bit encryption for HLS, Microsoft PlayReady and Adobe Flash Access, plus Google’s Widevine. For simpler integration with your web content management system, Encoding.com offers plug-ins for WordPress, Brightcove, Drupal, and Joomla with syndication options to thePlatform (which provides content syndication) and YouTube.
Although I spent little time working with the API, it’s worth noting that in addition to XML, the company offers official wrappers in PHP, Java, ColdFusion, C#, and numerous unofficial libraries. The service simplifies XML creation by allowing you to copy the XML codes from completed UI-based jobs; there’s also a browser-based XML tool that lets you paste your XML into a browser and simulate API operation.
Performance with Encoding.com
To evaluate performance, quality, and features, I ran trials on two other cloud encoders, Elemental Technologies’ Elemental Cloud and Amazon Elastic Transcoder. Performance is inexorably tied to price, which makes it difficult to create an apples versus apples comparison. For example, as shown in Figure 2, Encoding.com offers multiple plans at various costs and different maximum encoding queue times ranging from 4 to 60 minutes. As you would expect, my account was the fastest available, and queue times were typically less than 60 seconds.
Figure 2. Different plans offer different maximum queue times.
In addition, Encoding.com offers two accelerated encoding modes: turbo and twin turbo. Turbo mode sends your encoding job to a 4-core server and adds $1/GB to your output rate, while twin turbo mode uses an 8-core service that costs $2/GB extra. According to Encoding.com’s documentation, “On average the turbo encoding feature will process a job 2-4X faster than our standard servers and twin turbo will deliver a 6-8X processing time improvement over standard servers.” As you’ll see, although I saw some improvements, my results came nowhere close to those numbers. Since these modes can be a substantial addition to your normal encoding charges, you should benchmark their performance on your own encodes and determine if they are worth it.
Objectively assessing performance with the other systems was also complicated. For example, the Elemental plan that I used had a maximum of 10 servers, with one running continuously. In my six-job test, additional servers would have to spin up, which takes as long as 5 minutes each, which I included in the encoding time. If you’re running your encoders 24/7, or you pay for your servers to be active when not encoding, your encoding times will be quicker.
It’s also possible to “game” the system in some instances. For example, Elemental Server encodes all tasks in an encoding job using a single server. Had I spread the single-file, 11-preset encoding job over two jobs, I could have cut encoding time by as much as 50%. I also may have been able to improve Amazon Elastic Transcoder encoding times by creating additional pipelines and assigning each encoding job to a separate pipeline. Note that neither acceleration technique would likely work when creating output for adaptive streaming, which is the key reason that I didn’t do that.
Otherwise, I ignored download and queue times in all encoding tests, recording only the actual encoding times for all three services. I tested using twin turbo mode in all of my Encoding.com tests and ran each recorded test three times.
I ran three separate tests. The first was a 52-minute file encoded to 11 separate presets in an adaptive streaming group, output to MP4 files for RTMP-based Flash Dynamic Streaming. The second was a 210-minute SD file encoded to a single SD preset. The third test involved six files, averaging about 45 minutes in duration, encoded to the same 11 presets as the first test. I ran each test three times irregularly over 2 days and present the results in Table 1.
Table 1. Performance comparisons
I didn’t run the third test on the Amazon account because the results in the first test seemed to tell the story. The clunky UI doesn’t lend itself to repetitive tests. Specifically, not only was it time-consuming to set up the test, you couldn’t repeat it once completed, which was a nice convenience offered by the other services.
Any way you slice it, Encoding.com’s results were impressive; they were best in class for all three tests. Unlike Elemental, where you have to choose parameters such as the maximum number of virtual machines available, Encoding.com simply scales to accommodate the available jobs. Elemental has other advantages, which I’ll discuss in an upcoming review, but for pure performance, Encoding.com was tops.
While twin turbo mode undoubtedly goosed the results, I saw nowhere near the 6x–8x reduction in encoding time predicted in the Encoding.com documentation. I was able to repeat tests one and three using twin turbo mode; encoding time for the first test increased from 18:12 to 23:45 in normal mode, or about 30%. On test three, encoding time lengthened from 19:36 to 24:47 in normal mode, an increase of around 27%. I’m sure Encoding.com didn’t pull its estimates out of thin air, and these figures are representative on some types of encoding jobs. Again, however, I’d run some comparative tests such as these before paying extra for an accelerated mode.
Pricing for Encoding.com
Speaking of prices, let’s take a moment to discuss how Encoding.com compares to other services. As mentioned, Encoding.com charges based upon throughput, which includes both the source and output files, with prices varying based on volume and commitment. While unusual in the pure cloud encoding space, charging by throughput is also the model used by Microsoft’s Windows Azure Media Services for encoding and delivery.
The cloud video encoder plans to boost its engineering and sales teams, and continue its collaborations with Harmonic.
With formats expanding and more processing power required, transcoding was an early cloud test cast. Now, more workflow elements are going to the cloud.
Brightcove customers should look to this new service for inexpensive real-time event transcoding, but several rough edges mar the experience.
Elemental is a strong choice for high-volume video publishers or those already using Elemental hardware, but it doesn't come at a bargain price.
Will the major Hollywood studios warm up to cloud encoding? Encoding.com plans to disrupt the market.
Power customers will no longer have to incorporate the Vid.ly API, and can use Encoding.com's graphic interface.
Customers using the Wowza Media Server will find it easier to prepare their files for any-screen delivery.
Companies and Suppliers Mentioned