Scope
The CMCD (Common Media Client Data) specification, described in CTA-5004, is an open standard developed by the CTA WAVE (Web Application Video Ecosystem) project of the Consumer Technology Association (CTA). It is intended to allow media players to communicate data to content delivery networks (CDNs) during video streaming sessions.
Summary
CMCD (Common Media Client Data) is a communication bridge between media players and Content Delivery Networks (CDNs). Media clients can send key-value pairs of data to CDNs during a streaming session. This data offers valuable user experience insights, including encoded bitrate, buffer length, content ID, measured throughput, session ID, and playback rate.
By capturing and analysing this rich data set, CDNs gain a deeper understanding of how the video is streaming for each user. This empowers them to make informed decisions that can significantly improve performance. This communication offers several advantages:
- Improved Quality of Experience (QoE): CMCD data can instruct Content data Networks (CDNs) to adapt bitrate, resolution and other streaming parameters according to network conditions and the user’s device, improving picture and sound quality without buffering.
- Reduced Latency: CMCD data can preload video segments, reducing waiting time and improving playback smoothness, even on congested networks.
- Bandwidth Usage Optimisation: CMCD data insights can be used to identify and avoid network congestion or bottlenecks, improving bandwidth usage efficiency.
- Smart Delivery: By analysing CMCD data, CDNs can intelligently select the closest and most reliable server to deliver video content to the user.
- Data Analysis: Additionally, CMCD data helps CDNs identify potential issues before they affect the viewer, allowing them to take preventative measures and ensure a seamless streaming experience. Therefore, CMCD data can be used to analyse video streaming performance and to identify and troubleshoot problems.
There are three main ways media players (clients) send CMCD data to Content Delivery Networks (CDNs):
- Custom HTTP Request Headers: This method allows players to embed CMCD data directly within the header of their HTTP requests. However, some platforms, like web browsers, require additional “OPTIONS” requests to check if the CDN allows these headers. This can add unnecessary delays.
- HTTP Query Arguments: This approach involves appending CMCD data as key-value pairs to the request URL. Browsers generally prefer it due to its simplicity and avoidance of extra “OPTIONS” requests.
- Independent JSON Objects: Players can also send CMCD data as separate JSON objects independent of the HTTP request. This method offers flexibility but may require additional processing on the CDN side.
The best method depends on the player’s capabilities and the CDN’s processing requirements. Additionally, platform limitations can influence the choice. For instance, the “OPTIONS” request limitation doesn’t apply to platforms like Android.
To further optimise CMCD data transmission, two best practices are recommended:
- Sequencing Key-Value Pairs: Ordering key-value pairs alphabetically helps minimise the unique signature (fingerprint) a player exposes.
- Including Session and Content IDs: Adding a session ID (sid) and content ID (cid) with each request simplifies parsing and filtering CDN logs for specific sessions and content types.
By following these recommendations, media players and CDNs can work together to ensure efficient and informative CMCD data exchange, ultimately leading to a better streaming experience.
Integrating CMCD into video players offers a significant boost to the viewing experience. It streamlines troubleshooting by making player sessions readily available in CDN logs. This allows for quicker identification of root causes behind errors, minimising user frustration. Additionally, CMCD data combined with player sessions and CDN logs provides a clearer picture of content delivery. This enhances operational monitoring, leading to improved overall efficiency.
Most importantly for viewers, CMCD keeps the CDN informed about the player’s state and upcoming needs. This enables faster content pre-fetching, resulting in smoother playback with less buffering. In short, CMCD paves the way for smoother, higher-quality video streaming by enabling real-time communication between media players and CDNs.
Relevance for EXIGENCE
Adapting the bitrate, resolution and other streaming parameters according to the user’s network and device conditions, based on the analysis of streaming performance data, and making efficient use of bandwidth, as well as enabling CDNs to intelligently select the closest and most reliable server to deliver video content to the user, can significantly decrease the amount of energy consumed in the e2e process chain.