dash.js
dash.js copied to clipboard
Support for adaptation-set-switching:2016
Is your feature request related to a problem? Please describe. We are now generating manifests that include SupplementalProperty elements with schemeIdUri "urn:mpeg:dash:adaptation-set-switching:2016" when we use different encryption keys per video track, as required by Studios and high-profile sports content owners. dash.js currently picks one video rendition and sticks to it, whatever are the network conditions on the client side, it doesn;t switch down or up to a different bitrate.
Describe the solution you'd like That would be great if dash.js was supoorting this urn:mpeg:dash:adaptation-set-switching:2016 approach, as it is the official MPEG way of doing things when creating groups of AdaptationSets (section 5.3.3.5 of ISO/IEC 23009-1:2019). It's also referenced in the DASH-IF IOP v4.3, section 3.8.
Describe alternatives you've considered Not sure if there is any specified alternative to this approach, didn't find one.
Additional context Test stream available with this config https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html?mpd=https%3A%2F%2F3d1f6312aed730ab-sandbox.mediapackage.us-east-1.amazonaws.com%2Fout%2Fv1%2F8d5923a9a8b74147b4914f444c0c13e7%2Findex.mpd&drmToday=true&widevine.isActive=true&widevine.drmKeySystem=com.widevine.alpha&widevine.licenseServerUrl=https%3A%2F%2Flic.staging.drmtoday.com%2Flicense-proxy-widevine%2Fcenc%2F&widevine.httpRequestHeaders.x-dt-custom-data=ewogICAgInVzZXJJZCI6ICJhd3MtZWxlbWVudGFsOjpzcGVrZS10ZXN0aW5nIiwKICAgICJzZXNzaW9uSWQiOiAidGVzdHNlc3Npb25tdWx0aWtleSIsCiAgICAibWVyY2hhbnQiOiAiYXdzLWVsZW1lbnRhbCIKfQ%3D%3D&widevine.priority=0+&debug.logLevel=4&streaming.delay.liveDelayFragmentCount=NaN&streaming.delay.liveDelay=NaN&streaming.buffer.initialBufferLevel=NaN&streaming.liveCatchup.maxDrift=NaN&streaming.liveCatchup.playbackRate=NaN
Same stream working with castLabs Shaka fork: https://players.castlabs.com/presto/6.1.9/#/player/config?cfg=eyJzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly8zZDFmNjMxMmFlZDczMGFiLXNhbmRib3gubWVkaWFwYWNrYWdlLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tL291dC92MS84ZDU5MjNhOWE4Yjc0MTQ3YjQ5MTRmNDQ0YzBjMTNlNy9pbmRleC5tcGQiLCJ0eXBlIjoiYXBwbGljYXRpb24vZGFzaCt4bWwiLCJkcm1Qcm90ZWN0ZWQiOnRydWV9LCJhdXRvcGxheSI6dHJ1ZSwiZHJtIjp7ImVudiI6IkRSTXRvZGF5X1NUQUdJTkciLCJjdXN0b21EYXRhIjp7InVzZXJJZCI6ImF3cy1lbGVtZW50YWw6OnNwZWtlLXRlc3RpbmciLCJzZXNzaW9uSWQiOiJkYXNoLXByZXNldHMtMjAyMjAzMjUtMiIsIm1lcmNoYW50IjoiYXdzLWVsZW1lbnRhbCIsImZhaXJQbGF5Q29udGVudElkU3RyYXRlZ3kiOiJmdWxsLXNrZCIsImhlYWRlcnMiOnt9fX0sImVuYWJsZUVuaGFuY2VkU3VidGl0bGVNYW5hZ2VyIjp0cnVlLCJtZXRhZGF0YSI6eyJ0aXRsZSI6ImRhc2gtcHJlc2V0cyJ9LCJ0ZXh0c3R5bGUiOnsiZm9udEZhbWlseSI6IidSb2JvdG8nLCBzYW5zLXNlcmlmIiwiZm9udENvbG9yIjoid2hpdGUiLCJiYWNrZ3JvdW5kQ29sb3IiOiJyZ2JhKDAsIDAsIDAsIDAuNzUpIn19&customId=3