# Live vs VOD streaming decision matrix (AWS)

Pick the **pipeline** by latency budget, packaging complexity, and who operates
the video stack — not by defaulting everything to MediaConvert.

> Capabilities reflect mid-2026. **Amazon IVS** low-latency streaming targets
> sub-5-second glass-to-glass for interactive use cases; **IVS Real-Time** stages
> target sub-300ms participant-to-participant latency. **AWS Elemental MediaLive**
> is the broadcast-grade path for ad insertion, multi-bitrate HLS/DASH, and
> contribution from professional encoders. Confirm regional service availability
> before procurement.

## 1. "What job is this stream doing?"

| Job | AWS path | When to choose |
|-----|----------|----------------|
| Interactive live (chat, polls, creator tools) | **Amazon IVS** (low-latency) | Sub-5s latency; RTMP/SRT ingest; no broadcast ad stack |
| Ultra-low-latency stages (co-watch, auctions) | **Amazon IVS Real-Time** | Sub-300ms participant mesh; not a replacement for 24/7 linear channels |
| Broadcast / linear / SCTE-35 ad insertion | **MediaLive** + **MediaPackage** | Professional contribution, DRM on live, multi-rendition HLS/DASH |
| VOD catalog (movies, episodes, clips) | **MediaConvert** → S3 → **MediaPackage** (optional) → **CloudFront** | Batch transcode; catalog refresh on schedule or event |
| Syndication / global delivery | **CloudFront** (+ **Origin Shield** at origin region) | All paths terminate here; Origin Shield when multiple edge POPs hammer origin |

**Opinionated default:** **IVS for interactive live; MediaLive for broadcast live; MediaConvert for catalog only.** Routing a Saturday-night live event through a VOD transcode queue is the most common six-figure mistake on mid-market OTT platforms.

## 2. "When NOT to use AWS Elemental / IVS"

| Situation | Better path |
|-----------|-------------|
| You already sunk cost in a third-party packager (Bitmovin, Harmonic, etc.) | Keep packager; use S3 + CloudFront as origin only |
| Studio MAM owns mezzanine + IMF handoff | AWS ingest after MAM export — do not rebuild MAM in Glue |
| Single-region internal town halls (<500 viewers) | IVS or even Chime SDK — not MediaLive clusters |
| You need TikTok/YouTube as primary destination | Their ingest APIs — AWS is origin/CDN for *your* app |

## 3. Packaging and DRM

| Requirement | Mechanism |
|-------------|-----------|
| HLS/DASH with SPEKE DRM | **MediaPackage** + KMS-backed SPEKE endpoint |
| Clear (non-DRM) web preview | CloudFront signed URLs or signed cookies |
| Multi-CDN (Fastly + CloudFront) | Origin Shield in one region; separate origins per CDN only if contract requires |

See [DRM packaging checklist](./drm-packaging-checklist.md).

## 4. Cost signals

Use the [egress cost model](./egress-cost-model.csv) — CloudFront data transfer
dominates steady-state OTT bills once encoding is amortized. Origin Shield adds
per-request and per-GB charges but often pays back when catalog hot titles fan out
globally.

## Related posts

- [Media & OTT streaming on AWS](/blog/aws-media-ott-streaming-architecture-live-vod-2026/)
- [CloudFront pricing tiers](/blog/amazon-cloudfront-pricing-regional-tiers-requests-security/)
- [Data transfer costs](/blog/aws-data-transfer-costs-startups/)
