Amazon Web Services
Overview of Encoding.com’s integration with EC2, S3 and CloudFront
Encoding.com is the worldwide leader in studio-class media services, having processed over 50 million videos. Encoding.com makes video transcoding into all popular formats automated, cost-effective and instantly scalable for global enterprises and SMBs. We are now serving over 3,000 business customers including ESPN, Google, AOL, & Red Bull. Encoding.com was formally recognized for its innovative integration with Amazon Web Services by being selected as an Amazon Startup Challenge Finalist. Encoding.com is a venture-backed, privately held company with offices in Aspen, Colorado, San Francisco, California, and St. Petersburg, Russia.
Cloud Transcoding with AWS & Encoding.com
Video encoding or transcoding is the process of converting digital media to the correct format, size, and quality for playback/streaming on the Internet or mobile devices. Until Encoding.com was launched, the video transcoding market was served only by inflexible, complicated, and expensive hardware or software solutions that required in-house technical resources to set up and maintain. Encoding.com provides a flexible cloud based video transcoding service that is deeply integrated with Amazon Web Services’s EC2, S3, and CloudFront CDN services. Within minutes of signing up for our service, clients have access (via API, Watch Folder, Web Interface, or Desktop Application) to a studio-class video encoding platform with virtually limitless on demand capacity and a simple pay-as-you-go billing model.
Although we have an integration method for all skill sets, our general workflow remains the same in all cases. In a single request you tell Encoding.com three pieces of information to begin a job:
Where your source video is located. This can be directly from your hard drive, an FTP/SFTP location or your Amazon S3 bucket.
What formats you want your video encoded into. You can use our preset encoding profiles or use the dozens of encoding controls available to generate as many output versions as you require, whether it’s different formats, sizes, or bitrates. Additionally, we can generate thumbnail still images at different points within the video.
Where you want the encoded video sent when it’s finished. This can be an FTP/SFTP location or directly back to your Amazon S3 bucket so it’s ready for delivery by CloudFront.
Encoding.com offers a wide variety of integration methods to ensure you can encode your video utilizing our platform in a way that best fits your technical skills and requirements:
Web Interface: A simple browse and upload feature available via our web interface allows easy access to test our service, experiment with settings, and enables you to upload an individual video from your desktop.
Desktop Application: Our Adobe Air Desktop Application is available for both the MAC and PC and allows you to upload and manage transcoding jobs on your desktop. This is a useful tool to use for large source video files, as you can easily pause and resume uploads.
Watch Folder: With easy configuration within our web interface, you can set up a watch folder that will watch your SFTP/FTP or Amazon S3 bucket at the time frequency of your choice. All new videos added to the watched location from our last check will be encoded into your specified encoding settings and sent to the destination of your choice. You can have an unlimited number of watch folders for different encoding profiles.
XML API: The Encoding.com API is our most sophisticated integration method and allows you to seamlessly integrate cloud-based transcoding services directly into your own applications. Common use cases include user generated video sites, premium video portals, content management systems, and desktop applications. The API offers sophisticated features like real-time job status updates and a XML callback to notify you when a job is complete.
Which format should I choose? Before you can decide which format to encode your video into, you must decide where you would like to playback the video. Encoding.com supports encoding profiles for both mobile devices (iPod, iPhone, Zune, PSP, etc) as well as all major Internet media players. There are three major Internet video players and each requires a different video format: Windows Media, Quicktime, and Flash Media Players. While encoding.com supports encoding profiles for all three video players, we will focus on the Flash Media Player as it’s the player with the most penetration among global Internet users and is designed to work seamlessly with the Amazon CloudFront service. The Flash Media Player is installed in over 98% of Internet users’ browsers. Flash Media Player 9.0.x and later, which was released in December 2007, supports three video formats. Below is an overview of the available Flash video codecs:
Good FLV (H.263) This is the first generation FLV codec which offers fast encode time and universal compatibility with all versions of Flash, but does not offer the highest quality when compared to VP6 or H.264 codecs. Use the “Flash up to 9″ encoding output option to generate this format with Encoding.com.
Better FLV (VP6) This is a proprietary FLV codec which offers better quality than H.263. Use the “VP6″ encoding output option to generate this format with Encoding.com. Both Height and Width (HxW) must be a multiple of 16 when using the VP6 codec. For example 320×240 are both divisible by 16.
Best .MOV/FLV/.MP4 (H.264) H.264 has been adopted as the standard for the Blu Ray player, Apple iPhone/iPod, and is rapidly gaining penetration as the standard for Internet video. H.264 produces high quality video with reasonable file sizes, but average encode times are generally longer than FLV or VP6. Currently, its main drawback is that it is only supported in Flash Player 9 which currently has a 96-97% adoption rate among mature markets. Use the “Flash 9 H.264″ encoding output option to generate this format with encoding.com
There are a variety of innovative ways that Encoding.com uses Amazon Web Services to power its service and make it easy for other AWS customers to integrate their videos.
Advanced S3 Integration Using the web interface, watch folder or API, you can specify S3 buckets as either source or destination locations. In addition, we have built full support for the Amazon S3 ACL permissions so you can ensure your encoded output files are set to the correct permissions.
Automatic CloudFront Distribution To stream content with Amazon CloudFront, users simply store the original copy of their media objects in the Amazon S3 and then enable those files for distribution in Amazon CloudFront with a simple command using the AWS Management Console or the Amazon CloudFront API. End users requesting streaming content are automatically routed to the CloudFront edge location best suited to serve the stream, so end users can get the highest bit rate and therefore highest quality stream possible. Multiple levels of redundancy built into Amazon CloudFront ensure that customers’ streams are served reliably and with high quality.
No S3 Bandwidth Costs Because we use Amazon EC2 for video processing, if you store your source video on S3 you will not be charged bandwidth to your S3 account for transferring to and from Encoding.com.
Speed The upload and download time from your S3 bucket to our processing system on EC2 is lightening fast, because it does not travel over the public internet.
You need to be profitable. Utilizing a transcode solution that maximizes your audience and delivers superior quality is an imperative. At the same time, it is now possible with cloud-based encoding to stay current with the latest and greatest formats, bit rates, codecs, etc… while reducing your CAPEX and in-house management costs. Achieving profitability and self-sustainability should be tackled from both directions.
Many of you have already invested in your internal hardware/software encoding infrastructure and may wonder why change. Do any of these scenarios sound familiar? Your marketing VP approves an MRD requiring all content to be available for the iPhone… yesterday. Your head of sales delivers several new distribution deals all with various and stringent specifications [think Hulu], but your CEO has frozen your CAPEX budget. Or, your PR firm lands a feature story on the Morning Show next week announcing your funniest Twitter moment video contest. If the video production system breaks down, you know where the fingers will be pointed.
You are in the business of providing engaging video programming and delivering a seamless user experience. A robust outsourced cloud-based encoding solution can further automate your workflow and free up valuable resources to focus on feature and performance enhancements: player customization, content targeting, social media and community-building tools, language localization, and so much more.
Encoding Software Choices: There are a variety of open source and paid encoding software packages on the market from which to choose. Each has its own advantages and drawbacks depending on the video use case. Encoding.com maintains dozens of separately compiled encoding engines and makes them all available via our simple integration methods. So, you can choose what format you want without having to worry about which encoding software is best suited for which job.
Cloud Integration: Take encoding software and throw it on EC2… sounds easy right? Not quite. We have found that the algorithm that runs EC2 is one of the most critical and complicated components to our platform. While it’s simple enough to run software on one EC2 instance, in the world of computing intensive video encoding, it is common to have sporadic needs for computing resources to power your encoding jobs. Let’s say you have a large legacy content library to bring live by a looming deadline, or your user video uploads spike one day. To efficiently manage the huge swings in transcoding requirements, we have developed a sophisticated dynamic algorithm that intelligently scales up the EC2 platform as you send more jobs to the system and then intelligently turns off those instances to save costs when the jobs are complete.