Serverless Media Transcoding Workflow on AWS

By BuildPlane

Uploaded media triggers EventBridge and Step Functions to run MediaConvert jobs, store renditions in S3, and deliver them through CloudFront.

Open editable diagram

Architecture diagram

Edit this exact diagram
AWS media transcoding workflow diagram with S3, EventBridge, Step Functions, MediaConvert, output storage, and CloudFrontOpen on the canvas

AWS media transcoding workflow diagram with S3, EventBridge, Step Functions, MediaConvert, output storage, and CloudFront. The image links to a fully editable BuildPlane starter.

Overview

Content creators upload original media to an S3 source bucket. EventBridge starts a Step Functions workflow that validates the request and tracks an AWS Elemental MediaConvert job. Finished renditions are stored in a separate S3 bucket and delivered through CloudFront.

Components

  • S3 and EventBridge: Source uploads are durable before an event starts downstream processing.
  • Step Functions and MediaConvert: The state machine controls validation, transcoding jobs, retries, and completion handling.
  • Output S3 and CloudFront: Approved renditions remain durable in S3 and are cached globally for viewers.

Media Processing Flow

  1. A creator uploads original media to the source S3 bucket.
  2. EventBridge starts a Step Functions workflow that submits and tracks MediaConvert work.
  3. Finished renditions land in the output bucket and are delivered through CloudFront.

Customize First

  • Define job templates for target devices, bitrates, captions, and thumbnails.
  • Add quarantine and moderation steps before publishing untrusted uploads.
  • Choose signed URLs or cookies when content access must be restricted.

Design rationale

Decisions that shape this architecture

1

Make upload durable before processing

The source object reaches S3 before any workflow starts, so transient orchestration or transcoding failures do not require the creator to upload again.

2

Use workflow state for long-running jobs

Step Functions records progress, retries, and terminal outcomes around MediaConvert instead of keeping an HTTP request or function invocation open.

3

Separate originals from publishable renditions

Different buckets make retention, permissions, lifecycle, moderation, and CloudFront origin access easier to reason about.

Before production

Operational checks

Track upload age, workflow failures, MediaConvert queue time, and unsuccessful jobs.

Make event handling idempotent so duplicate upload events do not create duplicate work.

Validate output manifests, codecs, captions, thumbnails, and duration before publication.

Review S3 lifecycle, CloudFront cache behavior, signed access, and transfer cost.

Scope and tradeoffs

What this diagram does not solve

Live streaming needs a different service path

This workflow processes stored media asynchronously. Live ingest, packaging, and channel operations require a streaming-oriented architecture.

Content moderation is not shown

Products accepting untrusted uploads should add quarantine, malware checks, moderation, and publication approval before CloudFront delivery.

Common questions

Frequently asked questions

Why use Step Functions with MediaConvert?

Step Functions makes validation, job submission, waiting, retries, completion, and failure handling explicit for a long-running asynchronous process.

Why keep source and output media in separate buckets?

Separate stores support different access policies, retention rules, lifecycle settings, event notifications, and publication controls.

Can CloudFront restrict access to media?

Yes. Use origin access controls plus signed URLs or signed cookies when only authorized viewers should receive renditions.

From reference to working draft

Adapt this architecture with your AWS AI Agent

Start from the exact diagram in this guide. Change requirements, challenge a decision, or ask what fails first, while keeping the architecture editable.

Open editable diagram