[FS_AMD_Ph2] WT#2a - Common server- and network-assisted streaming
This is a Category C (functional modification) Change Request (CR 0031, revision 1) to TR 26.804 version 19.1.0, addressing Work Topic #2a on Common server- and network-assisted streaming under the FS_AMD_Ph2 study item. The CR proposes to merge with CRs 0032 and 0037.
Addition of new normative reference:
- [X3] SVTA1108: "CMSD to Enhance Media Streaming: A White Paper" from SVTA organization
- Provides industry perspective on CMSD usage and benefits
mb parameter (maximum suggested bitrate):The CR identifies CMSD as a candidate technology for in-band QoS signaling at application layer, with relevant parameters from CMSD-Dynamic header:
- currentBitrate
- bufferLevel
- playbackPosition
- throughputEstimate
Protocol Stack Constraints:
- CMSD operates at HTTP layer
- Network elements at lower protocol stack levels (e.g., routers with rate limiting) cannot interpret HTTP-level CMSD
- More suitable for application servers than network infrastructure elements
- Cannot be applied generically to non-streaming traffic types
Content-Specific Nature:
- CMSD data tightly coupled to media content and server-client connection
- Parameters like throughputEstimate and bufferLevel are client-specific and presentation-specific
- Not applicable to generic network link characterization
- Study will investigate whether more generic network connection information is needed for in-band QoS signaling
Comprehensive mapping of CMSD headers with their associated keys and descriptions:
| Header | Keys | Purpose |
|--------|------|---------|
| CMSD-Static | codec, resolution, duration, encodedBitrate | Static media object information |
| CMSD-Dynamic | currentBitrate, bufferLevel, playbackPosition, throughputEstimate | Session-variable information |
| CMSD-Cache | cacheStatus, cacheHitRatio, cacheExpiration | Cache status information |
| CMSD-Error | errorCode, errorDescription | Error reporting |
| CMSD-Quality | videoQuality, audioQuality, qualityAdjustments | Quality metrics |
| CMSD-User | userID, sessionID, userPreferences | User-specific data |
| CMSD-Session | sessionStartTime, sessionDuration, sessionID | Session information |
| CMSD-Event | playbackStart, pause, resume, stop | Session events |
| CMSD-Performance | serverResponseTime, networkLatency, throughput | Performance metrics |
| CMSD-Content | contentID, contentType, contentDuration | Content metadata |
Reference to SVTA white paper [X3] demonstrating:
- Experimental validation of CMSD benefits across delivery chain (origin servers to players)
- Improvements in:
- Latency reduction
- Startup time
- Quality of Experience (QoE)
The dash.js reference client implements a subset of CMSD parameters:
1. CMSD mb (Maximum Suggested Bitrate)
- Server Behavior: Sends mb in CMSD response headers as recommended upper bound
- Client Implementation:
- Treats mb as hard ceiling for ABR bitrate selection
- When enabled (abr.applyMb = true):
- Avoids selecting bitrates higher than mb
- Immediately throttles down if currently playing above mb
- Maintains upper bound until new mb received or playback ends
- Benefits:
- Prevents over-aggressive ABR decisions
- Reduces oscillations from bandwidth overestimation
- Leverages server's global visibility for client guidance
2. CMSD etp (Estimated Throughput)
- Server Behavior: Provides server-side throughput estimate (typically measured at response start)
- Client Implementation:
- Integrates into ABR logic via weighting mechanism
- abr.etpWeightRatio defines server vs. client estimate influence
- Example: 0.5 = 50% server estimate + 50% client estimate
- Can influence initial bitrate selection during manifest load
- Benefits:
- Server-side estimates more accurate (especially for low-latency/chunked-transfer scenarios)
- Reduces ABR oscillation/"ping-pong" from noisy client measurements
- Produces smoother bitrate choices and fewer stalls
- Validated by CMSD studies
The CR establishes CMSD as a viable application-layer mechanism for server-assisted streaming optimization while clearly identifying its architectural constraints for network-layer QoS signaling. The inclusion of dash.js implementation details provides concrete validation of CMSD's practical benefits in production environments.