Encrypted Media Extension and CDM support for media playback


#1

Does anyone know how close Electron might be to providing media playback support via EME and Content Decryption Modules?

From around chromium M44 Widevine DRM has been availble via the widevinecdmadapter.plugin, this appears to load automatically when it’s in Chromiums internet plugins directory (on a Mac at least). It then shows up at chrome://components/ alongside the Pepper Flash plugin.

Optimistically (or more likely naively) I see that the Pepper Flash Plugin appears in the same list and as Electron can already load the Flash player this has given me a thread to follow. By using chromes switches electron proxies through to libchromiumcontent, directly to chrome_switches i.e. kPpapiFlashPath, as well as describing PepperPluginInfo. I understand that the CDM’s are also supported using the pepper plugin api, presumably via kLoadPlugin in content_switches. Does it sound reasonable to extend electrons switches to include kLoadPlugin and try and get the CDM loaded - assuming a build of electron against m44 will work?

Any thoughts on this would be welcome, in looking into electron and chromium I’m far from any familar path.


HELP, Electron flash player will not load
#2

Looks like the kLoadPlugin switch is for loading NPAPI plugins which has been deprecated and is due to be phased out.

From the Chromium docs on pepper plugin integration there appears to be an alternative --register-pepper-plugins. From widevine_cdm_common.h the MIME type is specified as "application/x-ppapi-widevine-cdm".

This noted it does look like chromium handles the pepper and widevine cdm loading specifically in a manner similar to the Flash Pepper Plugin.


#3

This is continuing in issue 2085