This repository contains a working server side implementation of CDN content steering. The functionality was validated with dash.js reference player version 4.6.0. There are 2 parts as described below.
The NGINX module adds the xml elements needed enable content steering to DASH manifests.
Golang program that serves a steering endpoint API. It responds to HTTP GET requests with the following json for example:
{"VERSION":1,"TTL":2,"RELOAD-URI":null,"PATHWAY-PRIORITY":["CDNA","CDNB"]}
This prototype does not provide working CDN paths or video content, nor does it provide the GeoIP2-ISP Maxmind database which facilitates the ip address lookup to determine which CDN alternative to use. The specific video streams, CDN paths, and algorithm for switching are outside the scope of this prototype.
This code is provided as Open Source to SVTA members under the Apache License Version 2.0.