Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multikey DRM - Allow restoring multiple keysets for offline playbacks #3872

Open
calweaver opened this issue Feb 21, 2018 · 5 comments
Open
Assignees

Comments

@calweaver
Copy link

calweaver commented Feb 21, 2018

No description provided.

@calweaver
Copy link
Author

Hi Guys,

Been working on this issue for a week or so, hoping somebody can point me in the right direction.

We have sucessfully got Exoplayer playing back Widevine encrypted content with offline keys (ie using the offLicenseHelper and offlineLicenseKeySetid) when the video and audio stream both have the same key.

When we use different keys for the video and the audio stream we get the attached error.

We can playback content that uses seperate keys for video and audio Ok when not using the offlineLicenseKeySetId, ie allowing exoplayer to fetch the widevine keys at start of play.

ie if we remove this line of code,
drmSessionManager.setMode(DefaultDrmSessionManager.MODE_DOWNLOAD,oflineLicenseKeySetId);

The DefaultDrmSessionManager is created with multiSession: true

thanks

screenshot from 2018-02-21 14-33-14

@andrewlewis andrewlewis self-assigned this Feb 21, 2018
@andrewlewis
Copy link
Collaborator

Please could you provide a full bug report as requested in the issue template?

@ojw28 ojw28 changed the title Offline playback with multiple keys/sessions Support multiSession DRM for offline playbacks Feb 21, 2018
@ojw28 ojw28 changed the title Support multiSession DRM for offline playbacks Multikey DRM for offline playbacks Feb 21, 2018
@ojw28
Copy link
Contributor

ojw28 commented Feb 21, 2018

This is related to #3780, although keeping it as separate issue because this one relates specifically to offline. Some notes that should help clarify the current situation:

  • The existing ExoPlayer implementation can already support multi-key content, both within and across adaptation sets, without the need to set multiSession = true when instantiating a DefaultDrmSessionManager, and for both streaming and offline. However this depends on the license server responding with all of the keys required to play the content when provided with a request that contains the PSSH for one of the streams. See Multikey protected Dash video doesn't work #3780 and Playback of Axinom multi-key DASH does not request all keys from license server #1824 for some more background. This is how several of the big streaming providers I'm aware of do things and is efficient from the client's perspective, however as noted on Multikey protected Dash video doesn't work #3780 it's no longer in line with DASH-IF recommendations for a client to assume the license server will behave in this way. Despite this, if you are able to configure your license server to behave as described then this offers the best short term solution to your problem.
  • If the license server does not behave as described above then for streaming it's necessary to set multiSession = true to handle different keys for audio and video streams. Multikey protected Dash video doesn't work #3780 is tracking making sure that we also support seamless adaptation for different keys within an adaptation set (e.g. HD vs SD video).
  • If the license server does not behave as described above then for offline we just don't have the code necessary to support the user case yet. It would be necessary to offline multiple key sets (each of which would have its own keySetId, and make sure that they get loaded into the correct session during offline playback We'll use this issue to track adding support for this case.

@ojw28 ojw28 assigned ojw28 and unassigned andrewlewis Feb 21, 2018
@ojw28 ojw28 changed the title Multikey DRM for offline playbacks Multikey DRM - Allow restoring multiple keysets for offline playbacks Apr 16, 2018
@abhishekgarg96

This comment has been minimized.

@MedProgrammer24

This comment was marked as off-topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants