---
title: "CMCD and player QoE"
description: "How CMCD (CTA-5004) carries player context to the edge, why query-param and header transport differ for caching, and how to join startup, rebuffer, seek, and bitrate metrics."
url: "https://adultinfra.com/docs/video/cmcd-and-qoe/"
dateModified: "2026-09-12"
---

[Home](https://adultinfra.com/) / [Docs](https://adultinfra.com/docs/) / Video and live 

# CMCD and player QoE

How CMCD (CTA-5004) carries player context to the edge, why query-param and header transport differ for caching, and how to join startup, rebuffer, seek, and bitrate metrics.

LAST REVIEWED 2026-09-13

ON THIS PAGE

- [What CMCD carries](https://adultinfra.com/docs/video/cmcd-and-qoe/#what-cmcd-carries)
- [Query parameter versus header](https://adultinfra.com/docs/video/cmcd-and-qoe/#query-parameter-versus-header)
- [Cache-key implications](https://adultinfra.com/docs/video/cmcd-and-qoe/#cache-key-implications)
- [The QoE metrics that matter](https://adultinfra.com/docs/video/cmcd-and-qoe/#the-qoe-metrics-that-matter)
- [Joining player and edge signals](https://adultinfra.com/docs/video/cmcd-and-qoe/#joining-player-and-edge-signals)
- [Where AdultInfra fits](https://adultinfra.com/docs/video/cmcd-and-qoe/#where-adultinfra-fits) 

Player-side signals tell you what viewers experienced; edge-side signals tell you why. **CMCD (CTA-5004)** is the standard bridge between them: the player attaches context (session, object type, measured throughput, buffer level) to the media requests it makes, so the edge and your telemetry can attribute delivery behaviour to actual playback conditions.

## What CMCD carries

CMCD defines a compact set of keys the player sends with segment and manifest requests. The useful ones for operators:

- **Session and content identity** (`sid`, `cid`) so requests can be grouped into a playback session and a title.

- **Object type** (`ot`) distinguishing manifest, audio, video, and initialization segments.

- **Measured throughput** (`mtp`) and **buffer length** (`bl`) describing the network and buffer state at request time.

- **Requested maximum throughput** (`rtp`) and **next object** (`nor`) hinting at what the player will ask for next.

- **Encoded bitrate** (`br`) and **top bitrate** (`tb`) for rendition context.

Because the player knows the buffer level and the edge knows the cache result, the two together explain a rebuffer that neither sees alone.

## Query parameter versus header

CMCD can travel as a query string or as an HTTP header, and the choice has direct caching consequences.

Transport Cache behaviour When to use Query parameter Enters the cache key unless the edge strips or ignores it When intermediaries or logs must see it, and the edge is configured to exclude it from the key Header Does not enter a URL-based cache key by default Preferred for caching; requires header forwarding to be preserved 

The trap is treating a CMCD query parameter like a normal object-defining parameter. If it stays in the cache key, `sid`, `mtp`, and `bl` change constantly and fragment the cache into a pass-through. Configure the edge to **ignore CMCD keys in the cache key** while still logging and forwarding them. Header transport avoids the problem at the URL level but depends on the request path preserving headers through every hop.

## Cache-key implications

CMCD is metadata about a request, not identity of the object. Two viewers fetching the same segment at the same rendition must share one cached object regardless of their sessions, throughput, or buffer state. Rules:

- Exclude CMCD keys from the cache key under either transport.

- Keep token or session material out of the key as well. See [Origin protection for video](https://adultinfra.com/docs/video/origin-protection-for-video/).

- Verify with real traffic that hit ratio does not drop when CMCD is enabled; if it does, a key rule is wrong.

## The QoE metrics that matter

Track a small, stable set and segment them by region, ASN, device, and rendition:

- **Startup time:** time from playback intent to first frame. The dominant abandonment driver.

- **Rebuffer ratio:** buffering time divided by playback time. A small ratio still matters at scale.

- **Seek latency:** time to resume after a non-adjacent seek; on adult platforms, seeking is the common case, not the exception.

- **Bitrate and switching:** average delivered bitrate and how often the player downshifts.

- **Exit before start:** sessions that never reached first frame, which startup averages can hide.

Averages across all viewers conceal regional and device failures. Report distributions and per-segment values.

## Joining player and edge signals

CMCD is only useful if both ends are captured and correlated. Aim for:

- **Session keys in edge logs.** Log `sid` and `cid` so an edge log line can be joined to a player session.

- **Cache outcome per request.** Record hit, miss, and whether a `206` came from cache, so rebuffers can be attributed to origin latency versus client network.

- **Time alignment.** Use consistent clocks and retention so player events and edge events land in the same analysis window.

- **Privacy discipline.** Session identifiers are personal data; hash or rotate them, restrict access, and retain only as long as needed. Discretion is a product requirement for adult platforms, not an afterthought.

## Where AdultInfra fits

AdultInfra configures CMCD so it is visible to telemetry but invisible to the cache key, and correlates player QoE with edge cache outcomes on the same session. Start from [Adult video CDN](https://adultinfra.com/adult-video-cdn/), or bring the metric you want to move (startup, rebuffer, or seek) to [contact us](https://adultinfra.com/contact/).

**Need this configured for your platform?** [Get a test plan](https://adultinfra.com/contact/) and an engineer will map the resource, cache, and delivery design to your workload.

```json
{"@context":"https://schema.org","@graph":[{"@type":"TechArticle","headline":"CMCD and player QoE","description":"How CMCD (CTA-5004) carries player context to the edge, why query-param and header transport differ for caching, and how to join startup, rebuffer, seek, and bitrate metrics.","url":"https://adultinfra.com/docs/video/cmcd-and-qoe/","dateModified":"2026-09-13","keywords":"CMCD CTA-5004, player QoE metrics, video startup time, rebuffer ratio, edge player telemetry","author":{"@id":"https://adultinfra.com/#organization"},"publisher":{"@id":"https://adultinfra.com/#organization"},"inLanguage":"en"},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://adultinfra.com/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https://adultinfra.com/docs/"},{"@type":"ListItem","position":3,"name":"CMCD and player QoE","item":"https://adultinfra.com/docs/video/cmcd-and-qoe/"}]}]}
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://adultinfra.com/#organization","name":"AdultInfra","url":"https://adultinfra.com","logo":"https://adultinfra.com/favicon.svg","description":"Luxembourg-based specialist infrastructure for adult platforms.","slogan":"Already behind the adult internet.","areaServed":"Worldwide","knowsAbout":["Adult video CDN","Porn tube site infrastructure","Adult live-cam streaming","Creator subscription platforms","Byte-range video caching","Origin shielding","Player quality of experience","DDoS protection","GPU infrastructure","Adult-capable AI inference"],"location":{"@type":"Place","name":"Luxembourg","address":{"@type":"PostalAddress","addressCountry":"LU"}},"contactPoint":{"@type":"ContactPoint","contactType":"sales","url":"https://adultinfra.com/contact/"}},{"@type":"WebPage","@id":"https://adultinfra.com/docs/video/cmcd-and-qoe/#webpage","url":"https://adultinfra.com/docs/video/cmcd-and-qoe/","name":"CMCD and player QoE","description":"How CMCD (CTA-5004) carries player context to the edge, why query-param and header transport differ for caching, and how to join startup, rebuffer, seek, and bitrate metrics.","isPartOf":{"@id":"https://adultinfra.com/#website"},"about":{"@id":"https://adultinfra.com/#organization"},"primaryImageOfPage":{"@type":"ImageObject","url":"https://adultinfra.com/og-default.png"},"inLanguage":"en","mainEntity":{"@id":"https://adultinfra.com/docs/video/cmcd-and-qoe/#article"},"dateModified":"2026-09-13"},{"@type":"WebSite","@id":"https://adultinfra.com/#website","url":"https://adultinfra.com","name":"AdultInfra","description":"Luxembourg-based specialist infrastructure for adult platforms.","publisher":{"@id":"https://adultinfra.com/#organization"},"inLanguage":"en","potentialAction":{"@type":"ContactAction","target":"https://adultinfra.com/contact/"}}]}
```
