media server logo

Akamai Cdn

Mar 06, 2026

Introduction

This is a practical guide to using akamai-cdn for low-latency live streaming where contribution uses SRT. It’s written for streaming engineers and operations teams who need concrete decisions, configuration values, and a checklist to run a reliable 2–5 second live stream using SRT to an encoder or Akamai Media Services Live, then packaging via CMAF/LL-HLS or LL-DASH and delivery via Akamai Adaptive Media Delivery. For this workflow, teams usually combine Player & embed, Ingest & route, and Paywall & access. If you need a step by step follow-up, read Video Sharing Platforms: Practical Evaluation and Deployment Guide. If you need a step by step follow-up, read Upload Video.

Keywords: Low latency live video streaming via SRT

Decisions you must make before implementation

  • Latency target: pick a clear target. Sub-second requires WebRTC; 2–5s is realistic globally with chunked CMAF + CDN; 10–30s is standard HLS.
  • Ingest protocol: use SRT for reliable contribution (encoder → edge or encoder → Media Services Live). SRT is for contribution only—not a player delivery protocol.
  • Packaging & distribution: choose chunked CMAF with LL-HLS or LL-DASH for CDN distribution. Use WebRTC only if you need sub-second interactivity.
  • Where to package: prefer Akamai Media Services Live for SRT ingest + packaging (less operational overhead). Self-managed packager (Shaka Packager / Bento4) is OK for custom needs.
  • Origin and caching: origin can be NetStorage, S3, or Media Services Live. Use Akamai Adaptive Media Delivery (AMD) with Origin Shield for cache consistency and lower origin load.
  • Security and auth: use SRT encryption (passphrase/AES) for contribution and token-based URL signing or EdgeWorkers for distribution authentication and anti-leeching.
  • Player support: confirm target players support LL-HLS/LL-DASH (Safari, HLS.js low-latency builds, Shaka with CMAF). Have fallbacks to standard HLS for unsupported clients.

Practical configurations (what to set and why)

SRT ingest — recommended settings

SRT is resilient to jitter and packet loss when configured correctly. Key parameters you will set on the encoder or SRT client:

  • URL pattern: srt://[SRT_INGEST_HOST]:[PORT]?streamid=publish/[STREAM_KEY]&latency=2000&pkt_size=1316
  • latency: 1500–5000 ms. Start at 2000 ms (2s) in real networks, increase if packet retransmits are visible. Lowering latency increases packet loss risk.
  • pkt_size: 1316 (typical for live); tune for MTU on path.
  • encryption: enable AES (SRT supports passphrase); use a strong passphrase and rotate periodically.
  • streamid: pass stream identifier/publish key so edge or Media Services Live can route the feed.

Example ffmpeg push (encoder → Akamai SRT ingest endpoint placeholder):

ffmpeg -re -i input -c:v libx264 -preset veryfast -g 48 -keyint_min 48 -sc_threshold 0 \
-b:v 4000k -maxrate 4500k -bufsize 9000k -c:a aac -b:a 128k \
-f mpegts "srt://srt-ingest.example.akamaized.net:10000?streamid=publish/stream123&pkt_size=1316&latency=2000"

Encoder and packaging (CMAF chunking) — key parameters

To achieve low end-to-end latency you must align encoder keyframes with packaging segments and produce small CMAF chunks:

  • Keyframe / GOP: set a fixed keyframe interval aligned to segment duration. Example: segment duration = 2s → GOP/keyframe = 2s (for 25 fps, keyframe every 50 frames).
  • Segment duration: 2s segments are a good balance for 2–5s latency.
  • Chunk (fragment) duration: 200–500 ms per chunk inside each segment (CMAF fMP4 chunking). Smaller chunk gives lower latency but more HTTP requests and CPU overhead.
  • Codec & profiles: H.264 High profile (or HEVC if supported) with CBR or constrained VBR for stable delivery; AAC-LC audio 48 kHz.
  • ABR ladder: provide 4–6 renditions. Example ladder: 6 Mbps (1080p60), 4 Mbps (1080p30/720p60), 3 Mbps (720p30), 1.5 Mbps (480p), 800 kbps (360p), 300 kbps (audio+small video).
  • Packager: prefer Media Services Live for automatic SRT ingest → packaging to CMAF + HLS/DASH manifests. If self-hosting use Shaka Packager or Bento4 with fragment_duration=200–250 ms and segment_duration=2s.

Akamai CDN configuration — Adaptive Media Delivery & edge settings

Set these rules in Akamai Control Center or provide them to your Akamai contact:

  • Property type: Adaptive Media Delivery (AMD) property.
  • Origin: Media Services Live or NetStorage/S3 with Origin Shield enabled.
  • Cache headers:
    • Init segment: cache for longer (e.g., s-maxage 60–300s).
    • fMP4 chunk segments: short TTL (s-maxage 1–3s) so clients see freshest chunks.
    • Master & variant playlists: s-maxage 3–10s (short but not zero).
  • Cache key: include path and query string when your manifests use tokenized query strings; avoid caching by token unless you map token to same backend content via EdgeWorkers.
  • Origin Shield: enable to reduce origin load and increase cache hit ratio for live chunks.
  • EdgeWorkers: use for signing URLs, auth checks, and minimal server-side logic (e.g., manifest modification or token verification at edge).

Player configuration — reduce client playout buffer safely

  • Use a player with LL-HLS or LL-DASH/CMAF support (Safari built-in LL-HLS, HLS.js low-latency mode, Shaka for DASH/CMAF).
  • Set player live buffer target to ~2× segment duration. Example HLS.js: lowLatencyMode=true and liveSyncDuration ~ 2s. Test and adjust per device.
  • Implement fast startup (initial playlist refresh and prefetch init segment) to minimize first-frame time without increasing steady-state latency.

Trade-offs — what you gain and what you accept

  • Latency vs reliability: reducing buffers and chunk sizes lowers latency but increases sensitivity to jitter and packet loss. Use SRT to protect contribution; increase SRT latency if you see retransmits.
  • CPU & network cost: smaller chunk sizes increase request rate and CPU for packaging and CDN edge. Expect higher request volume and slightly higher egress overhead.
  • Global scale vs absolute latency: CDN edges reduce delivery latency, but global public internet RTT and last-mile constraints mean consistent multi-second latency is realistic; sub-second for global audience is not realistic with HTTP-based CDN distribution.
  • Player and device support: LL-HLS and LL-DASH capabilities differ by device and browser; maintain fallback streams for compatibility.

Common mistakes and how to fix them

  • Mistake: encoder GOP not aligned to segment boundaries → results in audio/video discontinuities and higher latency.
    Fix: force constant keyframe interval equal to segment duration (e.g., 2s) and disable scene-cut keyframes that break alignment.
  • Mistake: using TS segments or standard HLS instead of CMAF → you cannot reach low-latency targets.
    Fix: switch to CMAF fMP4 with chunked transfer and LL-HLS/LL-DASH manifests.
  • Mistake: SRT latency set too low → packet loss and rebuffering.
    Fix: increase SRT latency buffer (start at 2000ms), monitor retransmit counters and only reduce latency after verifying network stability.
  • Mistake: Akamai cache configuration caches playlists/segments too long → viewers see stale manifests or jumpy streams.
    Fix: set short s-maxage for chunks (1–3s) and short but non-zero TTL for manifests (3–10s). Use Origin Shield for origin protection rather than long client-side caching.
  • Mistake: no ABR ladder or poor bitrate choices → players stall on lower bandwidth connections.
    Fix: provide a reasonable ABR ladder (see recommended ladder above) and ensure encoder produces stable bitrates and fast enough keyframes for switching.
  • Mistake: relying on SRT for end-user playback.
    Fix: SRT is contribution only; always package to CMAF/HLS/DASH for CDN distribution or use WebRTC for sub-second end-user delivery.

Next step

  1. Decide the target latency for your use case (sub-second, 2–5s, or 10–30s).
  2. Set up an SRT ingestion endpoint: point your encoder at srt://[SRT_INGEST_HOST]:[PORT]?streamid=publish/[KEY]&latency=2000 and verify SRT metrics (retransmits, rtt).
  3. Configure your encoder: fixed GOP = segment duration (e.g., 2s), CBR/constrained VBR, and an ABR ladder. Produce fragmented fMP4 suitable for CMAF chunking.
  4. Choose packaging: use Akamai Media Services Live to accept SRT and emit CMAF chunked LL-HLS/LL-DASH, or configure Shaka/Bento4 with fragment_duration 200–250 ms and segment_duration 2s.
  5. Provision an Akamai Adaptive Media Delivery property: origin=Media Services Live (or NetStorage), enable Origin Shield, set cache TTLs for init/segment/manifest as recommended, and use EdgeWorkers for token auth if needed.
  6. Run a controlled POC: 1–10 test viewers across regions, measure end-to-end latency (capture time on encoder, server timestamp, and first-frame at client), iterate on SRT latency, chunk sizes, and player tuning.
  7. If you want a faster path: request a PoC or configuration template through your Akamai TAM for Media Services Live + AMD — they can provision an SRT ingest and a test property so you can validate with live traffic.