Search code examples
video-streaminghttp-live-streamingdrmmpeg-dash

What's Marlin DRM used for if we have CENC, MSE and EME?


Lately I've been reading about the different technologies involved in video streaming security, and I have a doubt about the Marlin DRM.

As I understand, it's a intermediate "DRM" so that the client doesn't need to integrate every other DRM. But isn't that what the Common Encryption (CENC) does? And then we have the MSE and EME extensions to handle the video in the code, so... what's the Marlin used for?


Solution

  • TL;DR: You do not need to consider Marlin, assuming you are only interested in HTTP streaming to the browser.

    Some brief background:

    Media Source Extensions (MSE) controls client side video playback using JavaScript.

    Encrypted Media Extensions (EME) is a standard API for your web application (such as client side javascript) to interact with a Content Decryption Module (CDM).

    The CDM is the client side implementation of the secret sauce that is the DRM solution. It will be provided by the underlying platform, and your application interacts with it using the EME API.

    Common Encryption (CENC) is an ISO/IEC standard (23001-7:2016) "specified to enable multiple digital rights and key management systems (DRMs) to access the same common encrypted file or stream".

    Marlin is just another DRM solution, and is used in certain environments (like Sony devices, InFlight entertainment and the UK YouView platform) but not in any mainstream browser.

    Like PrimeTime, Playready and Widevine, Marlin can use CENC media. You prepare the content once, and depending on what CDM is available you retrieve the license/key using the supported DRM. You will probably have to support multiple DRM solutions if you have a public facing application. This is still an area with a lot of change, but Playready and Widevine will get you support on modern versions of IE/Edge, Firefox and Chrome.

    There is talk that Safari/iOS will support CENC media with the Fairplay DRM soon. Perhaps this year (2016). This will probably not be MPEG-DASH, but HLS. However, HLS will apparently support using ISO BMFF video fragments instead of the MPEG TS currently used.