androidx / media

Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
https://developer.android.com/media/media3
Apache License 2.0
1.7k stars 406 forks source link

Add support for HLS/DASH content steering #1689

Open dchen-harmonicinc opened 2 months ago

dchen-harmonicinc commented 2 months ago

Initial requested under https://github.com/google/ExoPlayer/issues/11203. Please advise the plan for the feature to be available under Media3.

Content steering is a new feature of both HLS and DASH standards, simplifying the design of multi-CDN systems, redundancy/failover functions, load balancing, and various other traffic optimization applications. A number of players (DASH.js, HLS.js, Apple's AVplayer, etc.) already support this feature.

The relevant specifications are: [1] HLS Content Steering Specification (v1.2b1) https://developer.apple.com/streaming/HLSContentSteeringSpecification.pdf [2] DASH-IF – https://www.etsi.org/deliver/etsi_ts/103900_103999/103998/01.01.01_60/ts_103998v010101p.pdf

The ask is: please add support for Content Steering functionality in Exoplayer.

Finer-level detail: if feasible, please include the _HLS/DASH_pathway and _HLS/DASH_throughput parameters in calls to the steering servers. These parameters help servers to react faster in cases of failures or other problems with CDNs.

marcbaechinger commented 2 months ago

Thanks for filing.

I assign to @tonihei like issue https://github.com/google/ExoPlayer/issues/11203.. Usefulness of content steering for DASH/HLS is already acknowledged in that issue.

tonihei commented 2 months ago

Yes, this is a duplicate of https://github.com/google/ExoPlayer/issues/11203, but I'll use the opportunity to move the issue over to the Media3 tracker and close the old one. We are still planning to implement HLS and DASH content steering.

yreznik-brightcove commented 1 day ago

FYI, a recent overview paper describing various features and benefits of this standard: https://www.ibc.org/technical-papers/ibc2024-tech-papers-content-steering-a-standard-for-multi-cdn-streaming/12072.article It also includes references to various existing implementations, streams, and tools that may be useful for testing.