shaka-project/shaka-player

HLS PlayReady support

joeyparrish opened this issue · 8 comments

I have been told that Microsoft has defined their own KEYFORMAT for PlayReady in HLS. We don't support this yet in our HLS parser.

Needed:

  1. Sample content for testing
  2. Documentation of the KEYFORMAT
  3. Code to parse the KEYFORMAT and construct EME init data from it

Is this about #EXT-X-PLAYREADYHEADER: or some newer HLS+PR binding?

We have HLS-PR test content. I will send you an email.

I just noticed that the KEYFORMAT for our HLS-PR content is just KEYFORMAT="com.apple.streamingkeydelivery":

#EXTM3U
#EXT-X-VERSION:5
## Created with Unified Streaming Platform(version=1.7.18)
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-TARGETDURATION:3
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://MkJDQzZGRjYtMkVFMC00NTVGLTkwRTMtRjIwOUMxM0ZCQUQy",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
#USP-X-TIMESTAMP-MAP:MPEGTS=900000,LOCAL=1970-01-01T00:00:00Z

What is the KEYFORMAT defined by Microsoft?

@chrisfillmore There is no KEYFORMAT defined for PlayReady by Microsoft.
As @sandersaares has said #EXT-X-PLAYREADYHEADER is the way to signal PlayReady DRM on HLS.

The header data is a PlayReady Header Object (PRHO). The implementation will probably need to extract this and wrap it in a PSSH box (I think).

Here is an example stream: http://playready.directtaps.net/media/hls/tosh2641080aacenc/tears_of_steel_1080p-m3u8-aapl.ism/manifest(format=m3u8-aapl)

Thanks for the example. I don't think my test content has these headers.

According to current Microsoft documentation com.microsoft.playready is recommended KEYFORMAT used to signal PlayReady in HLS (fMP4). #EXT-X-PLAYREADYHEADER is still supported for "legacy purposes".

There is also test content using this KEYFORMTAT:
https://testweb.playready.microsoft.com/Content/Content4X

Hi team,
I'm waiting for Shaka-player support Playready DRM, anything news about this?

We don't yet support PlayReady in HLS. We haven't had time to work on it ourselves, but we would be happy to accept contributions in this area.