hls.js icon indicating copy to clipboard operation
hls.js copied to clipboard

DRM: Support Manifest Delivered DRM Keys

Open itsjamie opened this issue 5 years ago • 0 comments

Now that #2735 is merged, the Fragment class encrypted property now reports true for DRM signalled keys.

During the implementation of this, something I didn't address was MultiDRM streams. Currently, the data model assumes one levelkey per fragment. However, it's possible for there to be multiple levelkey(s) per fragment.

MultiDRM manifests I have found are relatively common and currently are unsupported due to the fact that we only store a single level key on a fragment. This will need to change if we want to support manifest delivered keys in a multi-key system manifest.


After we update the data model from an AES-128 Identity key centric style to support a DRM case, I see the steps roughly as;

  • Discuss the extension property naming for the hls.js public config to signal a preference for manifest delivered keys or initialization segment delivered
  • Add preemptive MediaKeySession negotiation for manifest delivered DRM keys if the preference is given to use them over EME "encrypted" event keys

Originally posted by @itsjamie in https://github.com/video-dev/hls.js/issues/2700#issuecomment-648527932

itsjamie avatar Jun 24 '20 01:06 itsjamie