I would like to perform pathway cloning as described in the video Deliver reliable streams with HLS Content Steering and the document draft-pantos-hls-rfc8216bis-12. Unfortunately, I keep getting an error:
CoreMediaErrorDomain (Code: -15881): Content Steering: error in handling Steering Manifest, ignoring and continue playback.
The client device is an iPhone (iOS 16.2). There is a video accessible from an "azure" CDN and a video accessible from an "edge" CDN. I want the player, which is playing the video from the azure CDN, to switch to the edge CDN.
This is the manifest received by the player:
#EXTM3U
#EXT-X-CONTENT-STEERING:SERVER-URI="https://example.com/content-steering?pathwaycloning=true",PATHWAY-ID="azure"
#EXT-X-STREAM-INF:BANDWIDTH=5605600,RESOLUTION=416x240,CODECS="avc1.64001e,mp4a.40.2",PATHWAY-ID="azure"
https://azure.com/contentsteering/stream_0/stream.m3u8
This is the steering manifest received by the player (every 10s, as specified by TTL):
{
"VERSION": 1,
"TTL": 10,
"RELOAD-URI": "https://example.com/content-steering?pathwaycloning=true",
"PATHWAY-PRIORITY": [
"edge",
"azure",
"aws"
],
"PATHWAY-CLONES": [
{
"BASE-ID": "azure",
"ID": "edge",
"URI-REPLACEMENT": {
"HOST": "edge.com"
}
}
]
}
I would expect the player to request the media files (stream.m3u8, data00.ts, data01.ts...) at https://edge.com/contentsteering/stream_0/. It doesn't, however, and instead I get the error specified in bold above.
Any idea what is wrong with my steering manifest?