How to migrate workflows from Amazon Elastic Transcoder to AWS Elemental MediaConvert
At re:Invent 2017, AWS Elemental released five new media processing and delivery services. One of these services, AWS Elemental MediaConvert, shares functionality with another file-based video transcoding service on AWS, Amazon Elastic Transcoder.
Today, we detail the primary differences between these two services. If you are using Amazon Elastic Transcoder and are ready to migrate to AWS Elemental MediaConvert, we also provide some tips and tools to make this transition easier.
Why should you migrate to AWS Elemental MediaConvert?
AWS Elemental MediaConvert provides a comprehensive suite of file-based video transcoding features that address the needs of the majority of use cases. MediaConvert is optimized to improve scalability, which allows you to process more files in parallel.
Using MediaConvert, you also benefit from a flexible pricing structure, with on-demand Basic tier pricing starting at $0.0075 per minute, which is less than Elastic Transcoder. If you have steady transcoding requirements, MediaConvert has added reserved pricing. With reserved pricing you purchase one or more transcoding slots, each billed at a monthly rate with a 12-month commitment, providing unlimited transcoding for one job at a time per slot.
In addition, AWS Elemental MediaConvert offers these features:
- Video resolutions up to 4K (UHD) and frame rates up to 120 FPS
- Broad codec support for inputs and outputs, including HEVC, Apple ProRes, and Dolby Audio (in addition to MPEG-2 and AVC)
- Create Common Media Application Format (CMAF) fragmented MP4 (fMP4) HLS and DASH video outputs that allow creation of a single file format using the AVC or HEVC codecs and fMP4 segments, packaged and delivered as multiple adaptive streaming technologies to serve different devices
- IMF (Interoperable Master Format) package ingest, with JPEG-2000 video, up to 10 bit UHD format, with IMSC1 text captions
- Better input control, including defining multiple audio selectors to configure a multi-track output, selecting a single video stream out of a Multiple Program Transport Stream, and enabling de-blocking filter features
- More output control over advanced codec parameters to enable features for speed versus quality, and support for multi-pass encoding
- DRM and encryption support including Google Widevine, Microsoft PlayReady, Apple FairPlay, and integration with AWS Elemental Partners for easy turnkey solutions
- Wide range of caption and subtitle capabilities
- HDR (High Dynamic Range) support, including HDR10 and HLG (Hybrid Log Gamma)
- Robust image processing features such as noise reduction, color correction, cropping, image insertion, and time code burn-in
- Advanced features such as ad avail blanking, ad insertion using ESAM, Nielsen configuration, audio normalization, and many more
Why should you stay on Amazon Elastic Transcoder?
For the small set of features listed below, you still need to use Amazon Elastic Transcoder.
These features are:
- WebM (VP8/VP9) input and output
- Animated GIF output
- MP3, FLAC, Vorbis, and WAV audio-only output
It’s important to know that new capabilities are regularly added to AWS Elemental MediaConvert, and the features above may be supported in future updates. For example, automatic and manual video rotation is now available in MediaConvert. You can find the most recent MediaConvert updates listed on the What’s New at AWS webpage.
You’re considering AWS Elemental MediaConvert, so let’s start with some basic questions.
Does MediaConvert support my input and output formats?
Does MediaConvert support my workload throughput requirements?
What are the differences between pipelines and queues?
Amazon Elastic Transcoder uses pipelines to manage transcoding jobs. When you create a job, you specify the pipeline that you want to submit the job to. Pipelines are closely tied to an S3 bucket that you specify. Queues in AWS Elemental MediaConvert are similar to pipelines. The number of concurrent jobs processed in a given queue is determined based on the number of queues in your account. However, one of the key differences is that queues are not tied to a specific S3 bucket. This means that you can submit jobs that reference input files in different S3 buckets to the same queue. For more information, see Working with Queues in the AWS Elemental MediaConvert documentation.
What are presets and what are templates?
Both Amazon Elastic Transcoder and AWS Elemental MediaConvert use presets as a way to save specific encoding parameters for an output. With Amazon Elastic Transcoder, you always have to specify a preset per output, and this preset cannot be overridden. With AWS Elemental MediaConvert, you have the ability to create jobs using a preset and then override any encoding parameters via the API, to include one-off changes for a transcode. For even more flexibility, you can also choose to specify all the encoding parameters explicitly as part of your job request without using any presets. To make things even easier, AWS Elemental MediaConvert introduced job templates, used to save a complete job configuration including input parameters, output group settings, and outputs. Job templates can be referenced when you create a new job, drastically reducing the job settings that have to be configured, and allowing you to use the same template for multiple jobs. AWS Elemental MediaConvert includes a variety of system presets and job templates by default, or you can create you own to fit your custom workflow.
How do I get notified about my job status?
Notifications in Amazon Elastic Transcoder are configured when pipelines are created using Amazon Simple Notification Service (SNS). By contrast, AWS Elemental MediaConvert uses Amazon CloudWatch Events to signal changes in job status. The CloudWatch Events can be tied to many services including SQS, SNS, SSM Automation tasks, and even AWS Lambda. Using Amazon CloudWatch Event filter patterns, you can customize your notification and post processing workflows per job. One example is filtering a job based off User Metadata and the job complete status, triggering a Lambda function to start a post-processing workflow. For more information about Amazon CloudWatch Events in AWS Elemental MediaConvert, see Using CloudWatch Events to Monitor AWS Elemental MediaConvert Jobs in the documentation.
Ready to start? Here are several things to consider when migrating to MediaConvert.
Migrate your settings using this new guide and script:
We’ve made an easy-to-use script that will convert Amazon Elastic Transcoder presets to AWS Elemental MediaConvert presets. Read the white paper how-to guide, and download the script from GitHub to try this out. Also, make sure to check out the many new system presets and templates that are provided in AWS Elemental MediaConvert.
HLS player version:
In Elastic Transcoder, you select the playlist version upon job creation. In MediaConvert, the HLS version will change as you enable features that require a specific version (according to the Pantos Spec). You can see what features enable which version in the AWS Elemental MediaConvert documentation.
SDK and API support:
MediaConvert is incorporated into many different AWS SDKs. This allows you to automate and monitor your transcoding workflows. Check out the documentation for some getting started examples.
MediaConvert uses CloudWatch Events to trigger workflow automation. You can use these events to tie AWS Lambda or AWS SQS to create post-processing workflows. To see some examples and get a jump start on building a custom workflow, check out the Video on Demand on AWS solution along with the 2017 re:Invent AWS Video-On-Demand Workshop. The VOD on AWS solution automatically provisions MediaConvert along with other services, building a scalable, distributed, and customizable video-on-demand workflow on AWS within minutes.
Encryption and DRM support:
MediaConvert supports several industry standard Digital Rights Management and encryption technologies, such as Google Widevine, Apple FairPlay, and Microsoft PlayReady. For more information, check out the using encryption documentation. AWS Elemental MediaConvert integrates with several partners that can provide key management solutions, or you can check out the SPEKE Reference Server posted to GitHub to start on your very own solution.
Now that you know the main differences between Amazon Elastic Encoder and AWS Elemental MediaConvert, we hope that as soon as you’re ready, you use this guide to help migrate to MediaConvert. Get started today!