PlayReady 是否仅在 iOS 上播放加密的 HLS?

Does PlayReady play encrypted HLS on iOS only?

PlayReady 似乎无法在 iOS 以外的平台上播放 HLS,但没有找到明显的证据。

PlayReady 可以在 iOS 上使用,通过像官方 Microsoft PlayReady iOS SDK 这样的 SDK:

https://www.microsoft.com/playready/features/ClientOptions.aspx

撰写本文时该 SDK 支持的流媒体格式如下:

  • 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

It seems PlayReady can't play HLS on platforms other than iOS but no obvious proofs found.

这是一个错误的假设。

PlayReady 是 DRM 技术。 HLS 是流媒体技术。这些技术在视频播放过程中进行不同级别的处理。 DRM 技术甚至对使用的流媒体技术(或一般的内容交付)一无所知。

HLS 是一种自适应流技术,可让您从服务器获取内容并根据设备功能或网络状况动态更改质量。 HLS 在 Mpeg2-TS 或分段 MP4 流级别上工作。

PlayReady 是一种保护内容的 DRM 技术。它不保护自适应流传送的整个片段或片段。您首先需要解复用传输容器(fMP4 或 Mpeg2-TS)并获取样本的基本流。个别样本(或 sub-samples)受 DRM 保护。

DRM 和自适应流媒体技术之间存在明显的区别,因此可以将它们混合使用。这些技术彼此相遇的唯一情况是自适应流式传输清单,其中您可能有保护描述 header 或可能特定于 DRM 的密钥 ID。

自适应技术不受平台限制——您可以在任何平台上从头开始编写 HLS 播放器。 DRM 的情况不同。您要么在已经存在 DRM 技术的平台上工作,要么可以访问移植工具包,然后通过流程将其移植到平台并满足稳健性要求(但通常只有设备制造商才有资源通过这条路径)。

那么你可以在另一个平台上使用 PlayReady 和 HLS 吗?确实!但在大多数情况下,响应更像是:您可以在所有已提供 PlayReady 端口的平台上将 HLS 与 PlayReady 结合使用。

我认为您的困惑来自 Microsoft 提供的 iOS PlayReady Client SDK。它已准备好使用具有 PlayReady 和 HLS 支持的播放器。您不需要移植任何东西,您只需支付许可证并使用播放器。您仍然可以在 Windows 10 UWP 应用程序中使用受 PlayReady 保护的 HLS 交付内容。您还可以实现 JavaScript HLS,并在 Internet Explorer 或 Edge 浏览器中将其与 PlayReady 一起使用。您只需要编写(或使用现有的)HLS 组件。

我敢肯定,许多智能电视制造商也已准备好使用支持 PlayReady 的 HLS 播放器。