Encoding in the Cloud
As streaming media enters its second decade, it’s not all that often that we get to explore a totally new topic. But now we do, as I recently took my first look at cloud encoding. What is cloud encoding? At a high level, it’s an internet-based service that encodes your uploaded source video files and delivers them back to you or your distribution partners.
Why cloud encoding, and why today? We like to talk about delivering to three screens—computer, TV, and mobile—but if you take a moment to do the math, it can easily jump to 20 or 30 screens. For delivery to computers, you’ve got services such as Hulu, YouTube, Yahoo! Video, blip.tv, Veeple, Vimeo, Brightcove, Ooyala, and VMIX. In the living room, you’ve got different cable providers and different devices, and for mobile, it’s challenging to even estimate the total number of available devices and services. Understanding and economically delivering compatible video files and metadata to these screens is an increasingly technical and logistical challenge.
Then there’s the cost of building and maintaining rendering farms. An eight-core Nehalem-based rendering station costs about $10,000, plus software and staffing costs. Unless you’re in the business of providing encoding services for third parties, these costs are all ancillary to your core business (e.g., overhead) and must be minimized.
Who should consider cloud encoding? Well, I’ll detail that later in the article. For now, if you’re considering buying a workstation-class computer solely for encoding (or you just did), cloud encoding should be on your radar. You should also read on if you’re even casually interested in cloud computing in general, as the infrastructure used by most of the cloud encoding companies is pretty fascinating stuff.
What Is Cloud Encoding?
Cloud encoding services are internet-based companies to which you upload your source video files and then choose encoding and delivery parameters. They encode and deliver your files to the designated locations and/or third-party services.
Pretty straightforward stuff, eh? What’s not so transparent is the proper acronym. Candidates are Software as a Service (SaaS), Infrastructure as a Service (IaaS), and Platform as a Service (PaaS), and the ideal cloud encoding service should provide components of all three.
How Does Cloud Encoding Work?
There are two aspects to this question. Operationally, to get your files encoded, you upload your source video files to the cloud encoding service, typically through some type of XML or REST-based API. (REST, which stands for REpresentational State Transfer, is a protocol popular for web-based services.) Some services also enable a more casual interface for less-automated activities, such as creating FTP-based watch folders or even direct file upload similar to YouTube. Once uploaded, you create and designate encoding templates and delivery destinations, just like you would with a desktop program, and then start the encoding job.
Again, pretty straightforward stuff. It’s what happens behind the scenes that’s the fascinating part. Let’s start by considering the problem.
Unless you’re a 24-hour video producer—such as CNN, YouTube, and the like—most of your video encoding is done in army mode, or hurry up and wait. You work hard to produce your source video files as quickly as possible (with encoding resources completely idle) and then need to encode the video into your delivery formats as quickly as possible (with encoding resources pedal to the metal). If your encoding stations are idle most of the time, it’s obviously wasteful. All things being equal, you’d prefer to be able to buy (or rent) an encoding station only when you need it, and then rent a server or servers that can produce your encoded files as quickly as possible.
For most cloud encoding services, Amazon Web Services is that encoding station. Amazon has created a huge global infrastructure to support its retail empire and rents access to that infrastructure on a pay-as-you-go, no-commitment basis. The company offers a range of services, including Amazon Elastic Compute Cloud (or Amazon EC2), which provides scalable computing capacity, and Amazon Simple Storage Service (Amazon S3), which provides online storage capability.