Amazon Elastic Transcoder Is Gone. Here Is the Migration Guide AWS Deleted.
Elastic Transcoder was discontinued on 13 November 2025, its English documentation is 404, and AWS's converter script calls an API that no longer answers. This guide maps every Elastic Transcoder concept — pipelines, presets, playlists, thumbnails, watermarks, captions, SNS notifications, encryption — to MediaConvert and to Transcodely, with the limits and system-preset IDs AWS's docs used to hold.
Amazon Elastic Transcoder stopped working on 13 November 2025. If you are reading this because a pipeline stalled, a Terraform plan broke on aws_elastictranscoder_*, or a bookmarked docs page now returns a 404, you are not early to a deadline — you are ten months past it, and most of the material AWS published to help has gone with the service. This post is the reference we wished existed: what Elastic Transcoder’s concepts were, exactly, and what each one becomes on AWS Elemental MediaConvert or on Transcodely.
We verified the state of things on 7 September 2026, and everything below cites where it came from. Transcodely is a transcoding API — a competitor to MediaConvert — so the third column of the mapping table is ours. We have tried to keep the first two honest regardless.
What is actually gone
AWS’s announcement of 12 November 2024 said: “After careful consideration, AWS has made the decision to discontinue Amazon Elastic Transcoder, effective November 13, 2025. … After this date, you will no longer be able to use Elastic Transcoder or any of the capabilities provided by this service.”
That has happened. As of our check:
- The API endpoints in us-east-1, us-west-2 and eu-west-1 still resolve in DNS but no longer accept connections. (MediaConvert’s endpoint, probed the same way, answers instantly.)
- Every English page under
docs.aws.amazon.com/elastictranscoder/returns 404 — the developer guide, the API reference, the limits page, the system-preset list. Google still ranks several of them. The machine-translated French, German and Japanese copies of the developer guide are, oddly, still online, and they are where several facts below were recovered. - The service has been removed from the AWS CLI reference, the boto3 reference and the botocore service models. The Terraform AWS provider tracked the end of life to its v6.0.0 release.
- AWS’s conversion script reads your pipelines and presets through the Elastic Transcoder API. Its own README warned that “the scripts will stop working after the service is discontinued”. They have. If you did not export your presets before the shutdown, the converter has nothing to convert from — which is why this post includes the system-preset table.
- AWS’s marketing pages for the service — FAQ, pricing, details — are still live and still say AWS “will discontinue” the service, in the future tense.
There is no page in the MediaConvert User Guide about migrating from Elastic Transcoder. AWS’s guidance is a February 2025 blog post, a light refresh of one from 2018, that covers pipelines, presets, notifications and HLS versions and skips thumbnails, watermarks, captions, bucket permissions and pricing tiers.
The concept map
Elastic Transcoder’s API (version 2012-09-25) had seventeen operations over three resources: pipelines, presets and jobs. Its definitions below are AWS’s own documentation strings from the service model still shipped in the JavaScript SDK, and its limits come from the surviving German-language limits page.
| Elastic Transcoder | What it was | MediaConvert | Transcodely |
|---|---|---|---|
| Pipeline | “A queue-like structure that manages your transcoding jobs.” Bound to one input bucket, one output bucket and one IAM role. Limit: 4 per region. | Queue. Not tied to a bucket — “you can submit jobs that reference input files in different S3 buckets to the same queue.” | App (an isolated project with its own API keys, origins, presets, jobs, webhooks and spend limits) plus Origins (storage connections). A job names its input and output origin. |
| InputBucket / OutputBucket | S3 only. Permissions granted to “a maximum of 30 users and/or predefined Amazon S3 groups” per output. | Per-output-group S3 Destination. |
Origins: S3, GCS, Cloudflare R2, any S3-compatible store, or a plain HTTPS URL for input. Output path templates per origin or per job. |
| Notifications | Four SNS topics per pipeline: Progressing, Completed, Warning, Error. | CloudWatch Events / EventBridge job-state rules. | Webhooks: HMAC-signed HTTP POSTs for 18 event types (job.*, output.*, video.*, app.*), retried for three days, per-job webhook_url override. |
| Preset | “A template that contains the settings … for example, the codec and the resolution.” Could not be overridden per job. Limit: 50 custom presets per account. Containers: flac, flv, fmp4, gif, mp3, mp4, mpg, mxf, oga, ogg, ts, webm. Video codecs: H.264, MPEG-2, VP8, VP9, GIF. | Preset plus Job Template; any parameter can be overridden in the job. | Presets referenced by ID from an output, or the same fields written inline — mix both in one job. Video codecs: H.264, H.265/HEVC, VP9, AV1. Containers: MP4, WebM, MKV, MOV, HLS, DASH, or both HLS and DASH from one encode. No MPEG-2, VP8 or GIF video. |
| Job / Outputs | One input (or stitched inputs), up to 30 outputs, each naming a preset. “If a file with the specified name already exists in the output bucket, the job fails.” | Job with output groups (File, Apple HLS, DASH ISO, MS Smooth, CMAF). | Job with up to 10 outputs, each an OutputSpec — inline or preset — plus job-level thumbnails, clip range, metadata, priority, idempotency key and optional cost-confirmation hold. |
| Playlists (HLSv3 / HLSv4 / Smooth / MPEG-DASH) | Up to 30 master playlists per job, version chosen at job creation; segment duration 1–60 s. | Output groups; “the HLS version will change as you enable features that require a specific version.” No Smooth-to-HLS rewrite needed. | hls and dash blocks on an output: fMP4 (CMAF) or TS segments, segment duration 1–30 s, GOP alignment, variant naming. No Smooth Streaming. |
| Thumbnails | Defined in the preset (required whenever the preset had video); JPG or PNG at an interval; {count} pattern. Free. |
A separate File output group with codec “JPEG Frame Capture” and no container. “Jobs containing only thumbnail outputs are invalid.” | Job-level thumbnails: single, interval, explicit timestamps, sprite sheet, or animated preview (WebP/MP4); JPEG, PNG or WebP. Free. |
| Watermarks | Up to four per output, PNG/JPG, defined in the preset with align/offset/opacity. | Image inserter (graphic overlay), both tiers. | One watermark per output: image URL, nine anchor positions or pixel placement, width and margin as percentages, opacity. Billed as a 1.1× overlay multiplier on that output. Fewer per output than Elastic Transcoder allowed. |
| Captions | Embedded (CEA-608/708, mov-text) and sidecar (dfxp, scc, srt, webvtt); up to 300 embedded per file, one embedded format per output. | Supported — Professional tier only. | subtitle_tracks per output: passthrough, convert (SRT, WebVTT, TTML, ASS), burn-in, extract, or generate with AI. Into HLS or DASH as sidecar renditions. No SCC or CEA-608 embedded output. |
| Composition (clip) | One clip per output, start time and duration. | Output clipping, both tiers. | clip with start_seconds / end_seconds — one range for the whole job, not per output. |
| Encryption / HlsContentProtection / PlayReadyDrm | S3 SSE or KMS at rest; HLS AES-128 with the key stored beside the playlist; PlayReady on Smooth and HLS. | S3 SSE/KMS; DRM through a SPEKE key server — Professional tier only. | drm block: Widevine and PlayReady on DASH, FairPlay on HLS, cenc or cbcs, bring your own keys or point at a key server. A 1.25× multiplier on the encode, no tier. Only the cenc/cbcs DRM schemes are documented — no key-beside-the-playlist AES-128 mode. |
| UserMetadata | Up to 10 key/value pairs per job. | UserMetadata on the job. |
metadata map on the job, echoed in every webhook. |
| Regions | Eight: N. Virginia, Oregon, N. California, Ireland, Singapore, Tokyo, Sydney, Mumbai. | 22 regions. | Encoding and managed storage run in the EU — Germany and Finland, with the API in Belgium; see our subprocessors page. Not a fit if you need in-region processing in the US or Asia-Pacific. |
Two structural differences matter more than any row. First, Elastic Transcoder billed per output, rounded up to the whole minute; MediaConvert bills “normalized minutes” to the second with feature multipliers; Transcodely prices each output as duration × a per-minute rate for its codec and resolution, plus one flat processing fee per job. Second, Elastic Transcoder had no feature tiers. MediaConvert does, and it is the part of the move most likely to surprise you.
The pricing translation nobody spells out
AWS’s announcement compared “$.0075 per minute” on MediaConvert with “$.015 per minute” on Elastic Transcoder. Both numbers are SD, single-pass H.264, us-east-1. Here is the fuller picture from Elastic Transcoder’s pricing and MediaConvert’s as published by AWS on 31 August 2026, first volume band, US East (N. Virginia):
| Output | Elastic Transcoder (per output minute, rounded up) | MediaConvert Basic | MediaConvert Professional |
|---|---|---|---|
| SD H.264, single pass | $0.015 | $0.0075 | $0.012 |
| HD (≥720 lines) H.264, single pass | $0.030 | $0.015 | $0.024 |
| HD H.264, multi-pass quality | — | not offered | $0.042 |
| HD HEVC | not offered | not offered | $0.084 |
| 4K | billed as HD ($0.030) | $0.030 | $0.048 |
| Audio only | $0.0045 | $0.003 | $0.00468 |
MediaConvert really is about half the price for a like-for-like H.264 job — and Elastic Transcoder never had a 4K tier, so 4K output was a bargain there. But look at what puts a job in the Professional tier per MediaConvert’s own feature table: “Captions support — Basic: No, Professional: Yes”; “DRM encryption — No, Yes”; “Multiple audio tracks — No, Yes”. An Elastic Transcoder workflow that attached sidecar captions or used HLS AES-128 cannot land on Basic. At Professional, HD single-pass is $0.024 and the quality-optimised multi-pass most teams pick is $0.042 — both above Elastic Transcoder’s $0.030. Ireland is higher again ($0.0136 SD Professional). That nuance appears in none of the migration material we could find.
For comparison, our published rates for the same outputs, in euros: 480p H.264 €0.005 per output minute, 720p €0.0075, 1080p €0.010 (HEVC the same), 4K €0.040; VP9 €0.015 and AV1 €0.040 at 1080p; plus a €0.05 processing fee per job for the machine classes a typical ladder lands on. Captions and DRM are not tiers: subtitle conversion is included, burn-in is 1.1×, DRM is 1.25×. Failed jobs cost nothing. Our cost calculator will price a ladder for you before you sign up.
Reconstructing what you lost: the system-preset table
If your jobs referenced Elastic Transcoder system presets by ID and you did not export them, the IDs were of the form 1351620000001-XXXXXX, and the families were (recovered from the French developer guide, which AWS still serves):
| ID suffix | Preset |
|---|---|
-000001 |
Generic 1080p |
-000010 |
Generic 720p |
-000020 / -000030 |
Generic 480p 16:9 / 4:3 |
-000040 / -000050 |
Generic 360p 16:9 / 4:3 |
-000061 |
Generic 320×240 |
-200010 … -200050 |
HLS v3 video+audio at 2 M / 1.5 M / 1 M / 600 k / 400 k |
-200015 … -200055 |
HLS v3 & v4 video-only variants of the same ladder |
-500010 … -500050 |
MPEG-DASH audio 128 k and video at 600 k / 1.2 M / 2.4 M / 4.8 M |
-400010 … -400080 |
Smooth Streaming 3 M down to 400 k |
| others | AAC/MP3/WAV/FLAC audio, Kindle Fire, Apple TV, iPhone/iPad, Web (Facebook/Vimeo/YouTube), Webm 720p/360p VP9, NTSC/PAL, animated GIF |
The generic presets were all H.264 with AAC audio at resolution-appropriate bitrates. The equivalents in Transcodely terms:
{
"outputs": [
{ "type": "hls",
"video": [
{ "codec": "h264", "resolution": "1080p", "quality": "standard" },
{ "codec": "h264", "resolution": "720p", "quality": "standard" },
{ "codec": "h264", "resolution": "480p", "quality": "standard" },
{ "codec": "h264", "width": 640, "height": 360, "quality": "standard" }
],
"hls": { "segment_format": "fmp4" },
"segments": { "duration": 6 }
}
],
"thumbnails": [
{ "mode": "interval", "interval_seconds": 10, "format": "jpeg", "width": 640 }
]
}That single output replaces the five HLS presets, the master playlist and the thumbnail configuration. (Our named resolutions start at 480p; the 360p rung is expressed as an explicit width and height, which any rung can use.) Save it as a preset once and reference it by ID, the way you did with 1351620000001-200010 — or send it inline and override one rung when a job needs it, which Elastic Transcoder never allowed.
The migration itself
- Inventory what you have from your side. Your job-submission code contains the preset IDs, bucket names and SNS topic ARNs. Your S3 output buckets contain the produced renditions, which tell you the real ladders. Your CloudWatch or application logs contain the job volume per month. Elastic Transcoder itself can no longer tell you any of this.
- Decide the notification model before the encoder. SNS topics per pipeline become either EventBridge rules (MediaConvert) or one signed webhook endpoint (Transcodely). Both are pushes; neither preserves Elastic Transcoder’s four-topic split, so your consumer should switch on the event name.
- Rebuild presets against the table above, then run one source through both old outputs (from your bucket) and new outputs and compare with
ffprobe— codec profile, resolution, frame rate, audio layout, segment count. This is the step that catches an interlaced 1080i preset or a 4:3 aspect ratio you forgot you had. - Check the tier gate if you are moving to MediaConvert. Captions, DRM, or a second audio track means Professional pricing; price the month before committing.
- Cut over per pipeline, keep the buckets. Nothing about your stored renditions has to change. Point new jobs at the new encoder; the old outputs stay where they are.
What we could not verify
The exact date AWS closed Elastic Transcoder to new accounts (a re:Post answer confirms new deployments were “being restricted” before the shutdown, but no AWS page dates it). Whether the Terraform provider removed or merely deprecated the resources in v6.0.0. The Internet Archive was unavailable during our research, so we could not recover the English developer guide from a snapshot; the limits and preset IDs above come from AWS’s own machine-translated French and German editions, which carry a disclaimer that the (now deleted) English text prevails. And, as always with AWS pricing, the figures above are the first volume band on 31 August 2026 — the MediaConvert pricing page is the source of truth for your region and volume.