This repository contains an implementation of CDN switching technology utilizing Content Steering mechanisms of HLS and DASH standards.
The unique aspect of this implementation is a stateless operation of the steering server. It is effectively a function that may be executed once per server request. Such implementation enables highly scalable and cost-effective deployment using edge computing capabilities of advanced CDNs or edge platforms.
The other feature of this implementation is a much lower TTL response period achieved in communication with the streaming players. This enables steering servers to react faster, achieve more precise switching behavior, and perform context-adaptive delivery optimizations maximizing QOS/QOE.
This repository includes two main components:
- manifest updater -- a tool dynamically inserting information about multiple CDNs and content steering server in DASH and HLS manifest, and
- content steering server -- a server communicating with the streaming clients and providing steering responses in accordance with the protocols defined in HLS Content Steering and DASH-IF Content Steering specifications.
Information regarding each component, build instructions, and scripts need for running these tools are provided in the corresponding subdirectories.
To test this technology, the following open-source streaming clients can be used:
In principle, this technology should work with any streaming client supporting the Content Steering functions of HLS and DASH.
Please see the LICENSE file for license rights and limitations (Apache v2).