FastPix Video Transcoding API

A video transcoding API that fits in one request

Send a source URL and get back a playback URL. The job definition, the output groups, the packager config and the preset files all go away, because the ladder is derived from the file instead of declared up front.

Migrating from MediaConvert, Elastic Transcoder, Azure Media Services or the Google Transcoder API.

1request, not a job document0presets to maintain3codecs out, one rate
the same job, both ways
# MediaConvert: a job document with output groups,
# one output block per rung, plus a queue and a role.
{
  "Role": "arn:aws:iam::123:role/MediaConvert_Role",
  "Settings": { "OutputGroups": [ { /* ~120 lines */ } ] }
}

# FastPix: the ladder is derived, not declared.
curl -X POST https://api.fastpix.io/v1/on-demand \
  -H "Authorization: Bearer $FASTPIX_TOKEN" \
  -d '{ "inputs": [{ "url": "s3://acme-masters/ep41.mov" }] }'

A video transcoding API takes your source files and returns formats a player can stream.

On the hyperscalers that work is a job template, an output group, a packager config and a queue you keep warm. On FastPix it is one POST, because the ladder is derived from the file rather than declared up front. You get back AV1, HEVC and H.264, packaged and ready to play.

Most people land here because the thing they built on is going away. If you are looking for a MediaConvert alternative, the concept mapping below is the part to read.

Why teams are moving

Two cloud transcoders people built on are gone

Not deprecated, not winding down. Switched off, with dates that have already passed. If you are shopping for an Elastic Transcoder alternative, this is why, and it is why we built the migration paths below.

Ended 13 Nov 2025

Amazon Elastic Transcoder

Support ended and the console and resources went with it. AWS's own migration path points at MediaConvert, which is a different API with a different job model, so it is a rewrite either way.

Retired 30 Jun 2024

Azure Media Services

Accounts were auto-deleted roughly 90 days after retirement, taking streaming endpoints, live events and asset metadata. Source video in Azure Blob Storage was not deleted, so a lot of media is still sitting there with no transcoding layer attached.

Still running

MediaConvert and the GCP Transcoder API

Both alive and both fine. Teams leave them for the operational load and the billing shape rather than because they stopped working. Those are the two things this page is about.

Worth saying plainly, because it decides whether you should be reading this at all. If your only problem is cost, your cheapest option is not another platform. It is one EC2 instance running FFmpeg, and teams have documented moving off MediaConvert to roughly $250 a month that way.

What that box does not come with is someone to patch it, scale it, tune ladders per content type, handle retries, package for every player and get paged at 3am. Move to an API for the operational load. Do not move for the per-minute price.

More on that trade: FFmpeg alternatives for streaming

From AWS Elemental

The MediaConvert alternative, concept by concept

Picking a MediaConvert alternative is not really a question about us. It is a question about whether your existing job can be expressed here, and what breaks when it is.

AWS conceptWhat it does thereOn FastPix
Queue / PipelineWork routing and concurrency. Elastic Transcoder pipelines were bound to an S3 bucket; MediaConvert queues are not.No queue object. Concurrency is handled for you, and jobs are not bound to a bucket.
PresetEncoding parameters for one output. Elastic Transcoder presets could not be overridden. MediaConvert presets can be, per job.No presets to maintain. The ladder is derived per file by per-title encoding.
Job TemplateWhole-job config: inputs plus output groups plus outputs. The object teams actually reuse in code.The request body is small enough that there is nothing to template. Set quality tier and codecs if you want to pin them.
Output GroupThe big one. File, Apple HLS, DASH ISO, CMAF, MS Smooth. One job produces several packaged outputs.One asset produces CMAF plus HLS and DASH manifests. You do not declare groups.
Input clipping and stitchingMulti-input assembly into one output.Supported as an input list on the same request.
IAM service roleMediaConvert assumes a role to read and write your S3 buckets. The most common unspoken blocker in any migration.Pull from a signed URL, or grant read on the bucket. No role for us to assume inside your account.
CloudWatch Events / EventBridge
Elastic Transcoder used SNS
Job status notifications inside your VPC.Outbound webhooks. This is an architectural change, not a config change. See events.

A real footgun worth knowing before you plan the cutover. In Elastic Transcoder you chose the HLS playlist version explicitly. In MediaConvert, AWS documents that the HLS version changes as you enable features that require it. If you are carrying assumptions about playlist version from an old pipeline, check them against real output rather than against the docs.

From Google Cloud

The Google Transcoder API alternative, concept by concept

GCP separates encoding from containerization. FastPix does not, and that one difference is what every port trips over. Any Google Transcoder API alternative has to deal with it before anything else.

GCP conceptWhat it does thereOn FastPix
JobUnit of work, moving through prepare, transcode and package.An asset, moving through analyzing, encoding and ready.
JobTemplate
including preset/web-hd
Reusable config. Most teams have preset/web-hd literally written into their code.The nearest equivalent is the quality tier: Standard, Pro or Premium. There is no template object.
Elementary streamsIndividual video and audio encodings, declared one by one.Derived. You do not enumerate streams; the ladder decides how many there are.
muxStreamsContainers combining elementary streams. The GCP analogue of an AWS output group.CMAF, packaged on the way out.
ManifestsHLS and DASH descriptors, declared explicitly.Both emitted. Nothing to declare.
Edit listsA sequence of edits as a timeline: trims and ad breaks.Supported on the input list.
Sprite sheets
max 10 per job
Thumbnail grids for scrub previews. A silent blocker if the target platform does not do them.Thumbnails and storyboards are generated per asset.
Pub/Sub notificationsAsync job updates on a topic inside your project.Outbound webhooks. You are replacing a topic with an HTTP endpoint. See events.

The concept that trips up every GCP port. The Transcoder API asks you to describe elementary streams and then mux them into containers. FastPix does not expose that split, because the ladder decides how many streams exist. If your code builds stream lists dynamically, that logic gets deleted rather than translated.

the part senior engineers block on

You are moving from a message bus to a webhook

AWS and GCP gave you a managed queue. FastPix sends webhooks instead. On AWS and GCP your job events land on EventBridge or Pub/Sub, inside your own network, with a queue's delivery guarantees. Moving to any external API, ours included, means those events arrive as outbound HTTP.

That is a different failure model, not a different config setting, and it is worth designing for rather than discovering.

  • Retries. Failed deliveries are retried with backoff, so your endpoint has to tolerate the same event arriving more than once.
  • Idempotency. Key your handler on the asset id and the event type, not on receipt order.
  • Signature verification. Every payload is signed. Verify before you act on it.
  • Ordering. Do not assume it. Treat each event as a statement of current state rather than a step in a sequence.
POST to your endpoint
{
  "type": "video.asset.ready",
  "asset_id": "aBc123",
  "playback_id": "pQr456",
  "duration": 2571,
  "created_at": "2026-08-21T09:14:02Z"
}

# Signed. Retried on failure. Not ordered.
# Handle on (asset_id, type), never on arrival order.

Pricing translation

Neither hyperscaler is simply cheaper

FastPix is not always the cheapest. Both hyperscalers hide cost, just in different places, which is why a rate card will not settle this.

PlatformBilling unitWhere the cost hides
AWS Elemental MediaConvertNormalized minutes, weighted by resolution, frame rate and codecThe tier trap. Basic starts at $0.0075 per normalized minute, but HEVC, AV1, captions, DRM, multiple audio tracks and HDR all push you into Professional from $0.0120. Teams budget at Basic and get billed at Professional the first time they add captions, which does not feel like a broadcast feature.
Google Transcoder APIOutput minutes by resolution, codec-agnosticLadder multiplication. $0.015 SD, $0.030 HD, $0.060 UHD, and outputs are additive. An SD plus HD plus UHD ladder is $0.105 per minute of source. Codec and captions cost nothing extra, which is the honest advantage over AWS.
FastPixSource minutesNowhere to hide it. Rung count, codec and encoding passes do not enter the calculation. A 40-minute source is 40 minutes whether the ladder has four rungs or twelve. Encoding is free on Standard quality.

The worked example: why 40 minutes bills as 629 · Pricing overview

How teams actually do it

Migrating off AWS or Azure in four steps

We never ask for a flag day. Existing playback URLs keep working throughout, so there is no back-catalog re-encode before you can start. Teams landing here from an Azure Media Services replacement search usually run both pipelines for a week first.

01

Point at the same sources

Give FastPix read access to the bucket your current pipeline already reads. Nothing moves yet.

02

Run both on a slice

Send a representative sample through both pipelines. Compare quality scores and time to playable on your own footage, not on a vendor's test clip.

03

Move the write path

Swap job submission for one request and replace your Pub/Sub or EventBridge consumer with a webhook handler.

04

Retire the job definitions

Presets, output groups, packager config and template objects all get deleted rather than ported.

Common questions

Transcoding and migration, answered

  • What is a video transcoding API?

    A video transcoding API decodes video that is already compressed and re-encodes it into different codecs and bitrates.

    Almost every file you upload is already compressed, so what runs in practice is transcoding rather than encoding. Most vendors say "encoding" because that is the word buyers search for, but the underlying operation is a decode followed by a re-encode. Glossary.

  • Is Amazon Elastic Transcoder still available?

    No. AWS ended support for Amazon Elastic Transcoder on 13 November 2025.

    The console and its resources are gone. AWS's own migration path points at Elemental MediaConvert, which uses a different job model with output groups and job templates, so moving there is a rewrite rather than a config change.

  • What happened to Azure Media Services?

    Azure Media Services was retired on 30 June 2024.

    Accounts were automatically deleted roughly 90 days later, taking streaming endpoints, live events and asset metadata with them. Source video held in Azure Blob Storage was not deleted, so a lot of media is still sitting in storage with nothing attached to transcode or deliver it.

  • How do I migrate from AWS Elemental MediaConvert?

    Point FastPix at the same sources, then run both pipelines on a slice of the catalog.

    Job definitions, output groups, presets and packager settings are deleted rather than ported, because the ladder is derived per file instead of declared. The two things that need real work are access, meaning a signed URL or bucket read instead of an assumed IAM role, and events, meaning a webhook handler instead of an EventBridge consumer. FastPix vs AWS.

  • What is the FastPix equivalent of an output group?

    There is not one, and that is the point.

    MediaConvert asks you to declare a File, Apple HLS, DASH ISO or CMAF output group and then define every output inside it. FastPix produces CMAF renditions with HLS and DASH manifests from one request, because the rendition set is decided by the content rather than by your job document.