It seems PlayReady can't play HLS on platforms other than iOS but no obvious proofs found.
2 Answers
It seems PlayReady can't play HLS on platforms other than iOS but no obvious proofs found.
That is a wrong assumption.
PlayReady is DRM technology. HLS is streaming technology. These technologies work on different level of processing during video playback. DRM technology even doesn't know anything at all about used streaming technology (or content delivery in general).
HLS is adaptive streaming technology which allows you obtaining content from the server and dynamically change the quality based on device capabilities or network conditions. HLS work on the level of Mpeg2-TS or fragmented MP4 streams.
PlayReady is DRM technology protecting the content. It does not protect whole segments or fragments delivered by adaptive streaming. You first need to demux transport container (fMP4 or Mpeg2-TS) and get elementary stream of samples. Individual samples (or sub-samples) are protected by DRM.
There is clear separation between DRM and adaptive streaming technologies which allows mixing them. The only case when these technologies meet each other is adaptive streaming manifest where you may have description of protection header or key IDs which may be DRM specific.
Adaptive technologies are not bound to platform - you can write HLS player from scratch on any platform. The situation is not the same for DRM. You either work on platform where DRM technology is already present or you have access to porting kit and you go through process to port it to the platform and meet the robustness requirements (but usually only device manufacturers have resources to go through this path).
So can you use PlayReady and HLS on another platform? Definitely! But in most cases the response is more like: You can use HLS with PlayReady on all platforms where PlayReady port is already available for you.
I think you confusion comes from Microsoft providing iOS PlayReady Client SDK. It is ready to use player with PlayReady and HLS support. You don't need to port anything, you just pay license and use the player. You can still consume HLS delivered content protected with PlayReady for example in Windows 10 UWP application. You can also have JavaScript HLS implementation and use it with PlayReady in Internet Explorer or Edge browsers. You only need to write (or use existing) HLS component.
I'm quite sure that many Smart TV manufacturers also have ready to use HLS player with support for PlayReady.

- 360,892
- 59
- 660
- 670
-
What I see on Smart TV market is that majority of devices support MSS/DASH+PlayReady but very rarely HLS+PlayReady as it like an exotic case. For example, see the Samsung's table "Container / Streaming / DRM Combination Table" http://developer.samsung.com/tv/develop/specifications/general-features/ – Andrey Rikunov Jun 28 '17 at 21:29
PlayReady can be used on iOS, via an SDK like the official Microsoft PlayReady iOS SDK:
https://www.microsoft.com/playready/features/ClientOptions.aspx
Here is the supported streaming formats for that SDK at the time of writing:
- iOS platform
- Includes a basic reference media player to build a final app
- Smooth Streaming (VoD/Live)
- MPEG-DASH (ISOBFF, VoD/Live)
- Key rotation and blackouts
- Support for HLS on iOS (VoD/Live)
- PlayReady ND-Receiver functionality on iOS clients

- 24,231
- 1
- 54
- 120
-
Say we have the following predicate: PlayReady + Platform -> supports HLS. The predicate is valid at least for Platform=iOS but are there any other platforms as well? – Andrey Rikunov Jun 23 '17 at 14:12
-
1Yes, from the MS documentation: "PlayReady client support can be implemented on iOS and Android devices by using the appropriate PlayReady client SDK and on other HLS-supported platforms by using the PlayReady Device Porting Kit." http://download.microsoft.com/download/B/D/4/BD42A75B-5B3E-49C0-B70D-DD49FA9592F9/DevelopingMicrosoftPlayReadyClients_March2015.pdf – Mick Jun 23 '17 at 14:20
-
In other words, it depends on device manufacturer/provider decide to support HLS in addition. But for what reason? So it seems majority of devices do not support protected HLS to be handled by PlayReady. – Andrey Rikunov Jun 23 '17 at 15:04
-
1Not necessarily - both HLS support and DRM can be implemented in software, depending on the requirements. For example, you can get a PlayReady SDK for iOS or Android from Microsoft which supports HLS. Or another example, a MS Edge browser based HTML5 video Player might implement HLS support itself and support PlayReady via the Edge browser's CDM. This would run on any device which supported the EDGE browser and its CDM (Content Decryption Module - the HTML5 browser extension that supports DRM https://www.w3.org/TR/encrypted-media/). – Mick Jun 23 '17 at 17:26