Pre-fetching DRM licenses for current and future content #1417
Labels
DRM
Relative to DRM (EncryptedMediaExtensions)
enhancement
This is a new feature and/or behavior which brings an improvement to the RxPlayer
Description:
When playing encrypted content, the player has to obtain a DRM license to decipher the media.
When a numerous amount of viewers are consuming the same live content, there can be situations when they will all request a DRM server at the same time to obtain the license for the content, it will create what we call a "synchronization effect". This will put a significant load on the server over a short period of time.
The identified situations where a "synchronization effect" can occurs are the following:
1 - The live content is protected with a key rotation mechanism that renew the DRM keys after some time. Because the keys has been renewed, the key informations in the manifest has changed, all clients will receive the new manifest with the keys updated at the same time, and they will all request for a new license.
2 - The content is protected with different keys for each track (it can be for security reasons). Suddenly one media track become unavailable (this could be for various reason, but one realistic example is that the CDN providing the tracks is suffering from a bandwidth congestion and is limiting the send of very high qualities and just changed it's policy to only provides lower qualities). All clients that were currently playing the highest quality will drop in quality and will play a new track, which is encrypted differently, so all those clients has to perform a license request.
In those situations, the DRM servers will receive an important amount of requests in a short time, and may not be able to responds to all clients in an acceptable time.
The idea of this proposition is to provide a feature to pre-fetch the DRM license before it's actually needed so it helps smooth out over time the amount of license request sent to the DRM server.
Requirements:
singleLicensePer
https://developers.canal-plus.com/rx-player/doc/api/Decryption_Options.html#singlelicenseperThe text was updated successfully, but these errors were encountered: