Closed Bug 1186162 Opened 9 years ago Closed 9 years ago

Bitmovin ClearKey EME test video does not play: bitdash error: 3016: DRM: Unable to instantiate a key system supporting the required combinations

Categories

(Core :: Audio/Video: Playback, defect, P2)

defect

Tracking

()

RESOLVED INVALID
Tracking Status
firefox42 --- affected

People

(Reporter: cpeterson, Assigned: cpeterson)

References

(Blocks 2 open bugs, )

Details

@ cpearce: do you know why the Bitmovin player is unable to instantiate Firefox's ClearKey?

Firefox can play DRM test video when "No DRM" is selected, but not with ClearKey. Chrome can play this DRM test with Widevine or "No DRM", but does not offer a ClearKey option. Safari can play with ClearKey or "No DRM".

http://www.dash-player.com/demo/drm-and-protection/?drm=clearkey&mpd=%2F%2Fbitdash-a.akamaihd.net%2Fcontent%2Fsintel-ck%2Fstream.mpd&key=a0a1a2a3a4a5a6a7a8a9aaabacadaeaf

I see the following errors in the browser console:

GET XHR http://bitdash-a.akamaihd.net/content/sintel-ck/audio/und/init.mp4 [HTTP/1.1 200 OK 0ms]
GET XHR http://bitdash-a.akamaihd.net/content/sintel-ck/video/1/init.mp4 [HTTP/1.1 200 OK 0ms]

DRM: Unable to instantiate a key system supporting the required combinations bitdashplayer.min.js:1:365558

bitdash error: 3016: DRM: Unable to instantiate a key system supporting the required combinations drmtestarea.js:38:9
DRM: Failed to create and initialize a MediaKeys object bitdashplayer.min.js:1:365558

bitdash error: 3018: DRM: Failed to create and initialize a MediaKeys object drmtestarea.js:38:9
DRM: Unable to instantiate a key system supporting the required combinations bitdashplayer.min.js:1:365558

bitdash error: 3016: DRM: Unable to instantiate a key system supporting the required combinations drmtestarea.js:38:9
DRM: Failed to create and initialize a MediaKeys object bitdashplayer.min.js:1:365558

bitdash error: 3018: DRM: Failed to create and initialize a MediaKeys object drmtestarea.js:38:9

GET XHR http://bitdash-a.akamaihd.net/content/sintel-ck/audio/und/seg-0.m4f [HTTP/1.1 200 OK 0ms]
GET XHR http://bitdash-a.akamaihd.net/content/sintel-ck/video/1/seg-0.m4f [HTTP/1.1 200 OK 0ms]

DRM: Unable to instantiate a key system supporting the required combinations bitdashplayer.min.js:1:365558

bitdash error: 3016: DRM: Unable to instantiate a key system supporting the required combinations drmtestarea.js:38:9
DRM: Failed to create and initialize a MediaKeys object bitdashplayer.min.js:1:365558

bitdash error: 3018: DRM: Failed to create and initialize a MediaKeys object drmtestarea.js:38:9
Flags: needinfo?(cpearce)
They're only using the MS and webkit prefixed versions of the EME APIs, not the unprefixed like what we implement.
Flags: needinfo?(cpearce)
Specifically, I can't see any call to navigator.requestMediaKeySystemAccess().
The Bitdash player should use the unprefixed EME APIs.
Status: NEW → RESOLVED
Closed: 9 years ago
Component: Audio/Video → Audio/Video: Playback
Resolution: --- → INVALID
I'm going to use this bug to track my outreach asking Bitmovin to use unprefixed EME APIs on Firefox.
Assignee: nobody → cpeterson
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
bitdash player has implemented the MS and webkit prefixed EME as well as the unprefixed EME to support the EME on as many browsers as possible.

We are detecting which one is implemented in the browser, in the following order:
1) unprefixed
2) MS prefixed
3) webkit prefixed

In Firefox, the player detects the unprefixed EME, but the navigator.requestMediaKeySystemAccess Promise rejects for the given configuration (that's what bitdash Error 3016 is saying).

We are using navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{initDataTypes: ['cenc']}]) and it seems to be wrong. Could you please provide what data Firefox expects for mp4/h.264 ClearKey streams?
Flags: needinfo?(cpeterson)
cpearce, Daniel's example code works for me in Chrome but not Firefox (Windows and OS X). Is Firefox expecting some additional configuration option?

navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{initDataTypes: ['cenc']}])
Flags: needinfo?(cpeterson) → needinfo?(cpearce)
Depends on: 1189196
(In reply to Chris Peterson [:cpeterson] from comment #6)
> cpearce, Daniel's example code works for me in Chrome but not Firefox
> (Windows and OS X). Is Firefox expecting some additional configuration
> option?
> 
> navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{initDataTypes:
> ['cenc']}])

For completeness:

navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{initDataType: 'cenc'}])
Flags: needinfo?(cpearce)
Until bug 1189196 adds initDataTypes, the Bitdash player could add a special case for Firefox's initDataType. Or always include both initDataType and initDataTypes; whichever property name is incorrect will be ignored by browsers.
The bitdash DRM demo has changed and no longer offers ClearKey as a test option.

http://www.dash-player.com/demo/drm-and-protection/?drm=clearkey&mpd=%2F%2Fbitdash-a.akamaihd.net%2Fcontent%2Fsintel-ck%2Fstream.mpd&key=a0a1a2a3a4a5a6a7a8a9aaabacadaeaf
Status: REOPENED → RESOLVED
Closed: 9 years ago9 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.