Microsoft PlayReady 支持内容所有者通过在线媒体商店向用户出售音乐或视频目录订阅的场景。
由于 PlayReady 服务器不包含任何业务逻辑,但可以链接到任何业务逻辑后端(通过 Web 服务),因此,订阅内容的 PlayReady 许可证的交付可能与租赁内容相同。 因此,客户端将为必须播放的每个内容(视频、音乐)请求单独的许可证。
请注意,该服务可以在一个许可证响应中传送多个许可证,以便进行优化。 例如,在客户端正在播放系列剧集的方案中,客户端在用户选择该视频时请求第一集的许可证。 该服务可能希望同时为该系列的所有剧集提供许可证,以降低剧集之间的差距。 在播放多首曲目时,提供多个许可证对于音乐更有利,可以实现无间断播放。
在播放大量内容片段的订阅模型中(例如,在用户下载数千首曲目以脱机播放的音乐服务中),客户端必须管理数千个不同的许可证,每个内容各有一个。 由于这是订阅服务(例如,它需要每月续订),因此交付的许可证在每月订阅的续订日期到期,并且用户期望在每月费用再次支付时续订所有许可证。
若要优化此方案,服务应使用链式许可证。 每条内容都与一个唯一的叶许可证绑定。 所有叶许可证均与同一根许可证绑定。 叶许可证没有开始和过期时间,但根许可证具有这些开始和过期时间。 因此,只有根许可证才能在订阅续订时重新获取。 此外,播放订阅内容的设备必须支持 PlayReady 受信任的时钟,以强制实施与播放许可证关联的订阅策略。 有关详细信息,请参阅 许可证链 和 受信任的时钟。
订阅内容方案执行以下步骤,如图所示。
服务提供商将未经保护的内容传输到内容打包服务器。 服务提供商将许可证传输到许可证服务器。
服务提供商将受保护的内容传输到 Web 服务器进行分发。
客户端准备就绪后,可以获取订阅内容,以及订阅结束时过期的许可证。
订阅内容的最常见传递机制是从 Web 服务流式传输受保护的内容,或将内容下载到本地设备上,然后播放内容。
流媒体订阅内容
在订阅场景中,订阅允许一定的最大并发流数(例如三个流),该服务可能希望利用 PlayReady Secure Stop 强制实施此数量。
在通过 HTTP 使用自适应流协议时,流会通过 HTTP 缓存,流媒体源服务器会接收所有流媒体请求。 因此,要计算当前有多少客户端播放一个流对服务而言并不简单。
PlayReady Secure Stop 解决了此问题。 PlayReady Secure Stop 允许在客户端停止播放流时通知服务。 结合非永久性许可证,允许服务在客户端开始播放流时收到通知,它允许服务实时计数有多少客户端在特定的帐户下播放流或流集合,并强制实施此数字。
下载和播放订阅内容
实现下载和播放的订阅内容时,应考虑以下技术方面。
与租赁或任何其他方案一样,在播放之前下载一段内容允许与网络质量不相关的内容质量不变,但可能需要一些延迟才能真正开始播放。 例如,如果网络带宽通常介于 2 Mbps 和 5 Mbps 之间,平均为 4 Mbps,并且用户以 4 Mbps 支付完全高清 (HD) 流的费用,则确保持续高质量的唯一方法是预先下载内容。 渐进式下载允许客户端开始下载内容,然后在下载完成之前开始播放。 在上面的示例中,预缓存 5 分钟可能足以确保播放期间期望的质量。
下载交付的其他优点是能够让用户在零连接或低连接环境中进行内容消费(例如地铁、通勤列车、飞机等)。
希望进行内容推送的服务可能希望利用 PlayReady 计量。 PlayReady 计量允许服务提供永久性许可证,并在内容实际播放后收到通知。 根据这些信息,服务可以将内容推送到设备,并根据用户的实际使用情况支付内容所有者或向用户收费。 通常,此功能在以下方案中非常有用:
用户有视频服务的订阅。
用户开始观看电视连续剧的第 1 集。
该服务将第 2 集、第 3 集和第 4 集推送到设备(设备应用程序下载这些集以及相关的永久许可证)。
用户在地铁里断开了网络连接。
用户播放第 2 集和第 3 集。
用户重新连接。
服务收到用户播放第 1、2 和 3 集,但未播放第 4 集的通知。