Azure 媒体服务 Fairplay V3 DRM 内容密钥策略

Posted

技术标签:

【中文标题】Azure 媒体服务 Fairplay V3 DRM 内容密钥策略【英文标题】:Azure Media Service Fairplay V3 DRM Content Key Policy 【发布时间】:2021-11-19 09:43:13 【问题描述】:

我正在尝试按照https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-protect-hls-with-fairplay 的说明使用 DRM 加密来加密我的直播内容。

这是我的 DRM 政策和流媒体定位器:

我能够从 HLS URL 获取 MANIFEST 文件。我发现应该有另一行(称为许可证 URL?)类似于以下内容,但它没有出现在我下载的 MANIFEST 文件中:

#EXT-X-SESSION-KEY:METHOD=SAMPLE-AES,KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1",URI="skd://willzhanmswest.keydelivery.westus.media.azure.net/FairPlay/?kid=90e91c74-feb1-41ed-920a-3330a62279ca"

我配置 DRM 时有什么问题吗?对于我上传的 .pfx 文件的 FAIRPLAY,密码为 STRING 格式,ASK 由 APPLE 给出。这是正确的还是我遗漏了什么?

【问题讨论】:

【参考方案1】:

这是设计使然。 URI="skd://willzhanmswest.keydelivery.westus.media.azure.net/FairPlay/?kid=90e91c74-feb1-41ed-920a-3330a62279ca" 确实是 FairPlay 许可证获取 URL。 sdk 符合 Apple 的 FPS 规范。

如果播放器 SDK 不需要明确的许可 URL,它知道将 skd 替换为 https。

如果播放器 SDK 需要明确的许可 URL,您的代码需要将 skd 替换为 https。

快速说明:您正在为 3 个 DRM 使用 OpenRestriction。我认为这只是为了测试,不打算在生产中做同样的事情?

【讨论】:

是的,它只是用于测试,但现在的问题是 URI 没有显示在文件中 如果它没有显示在*** HLS 清单中,请检查第二级(播放列表级别,任何比特率)。 第二级?如何以及在哪里检查? 假设这是受 FairPlay 保护的 URL:eventgridmediaservice-usw22.streaming.media.azure.net/… 在其播放列表中,您会发现,对于每个比特率,都有一个 URI 属性,其值如下: QualityLevels(385752)/Manifest(video,格式=m3u8-aapl,type=keyframes,encryption=cbcs-aapl) . 然后将视频 URL(直到清单)与此段连接,以获得如下所示特定比特率的 URL:eventgridmediaservice-usw22.streaming.media.azure.net/…。这是第 2 级播放列表。对于这个特定的受保护资产,您可以在两个级别查看许可证获取 URL。

以上是关于Azure 媒体服务 Fairplay V3 DRM 内容密钥策略的主要内容,如果未能解决你的问题,请参考以下文章

Azure 媒体服务共享访问策略限制

配置服务时如何通过依赖注入在 Azure Function V3 中注入或使用 IConfiguration

从资产创建缩略图 - Azure 媒体服务

使用 Azure 媒体服务和 Asp.Net Core 上传和管理媒体文件的最佳方式

Azure 媒体服务实时直播

使用 Azure 媒体服务进行实时音频编码