如何将破折号 DRM 许可证添加到 m3u 播放列表?
Posted
技术标签:
【中文标题】如何将破折号 DRM 许可证添加到 m3u 播放列表?【英文标题】:How to add dash DRM license to m3u play list? 【发布时间】:2021-02-27 20:02:15 【问题描述】:在过去的几天里,我们正在尝试将 DRM 许可证密钥添加到 m3u 列表上的仪表板流中。 我们可以通过 shaka 网络播放器播放这个,但管理层需要通过带有 KODI/任何客户端应用程序的 android 盒子播放这个。 几乎没有选择,但它不适用于 IPTV 客户端。
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://link.to.license.server.com
#EXTINF:-1,Office VOD 1
https://cdn.ouroffice.com/manifest.mpd
用 Kodi 和其他可用的 IPTV 应用程序尝试了上述代码,但没有运气。 有什么办法,我们可以通过 m3u 列表传递 DRM 密钥?
【问题讨论】:
【参考方案1】:我认为您的示例可能混淆了几个不同的概念。
DASH 和 HLS 是流式传输协议,本质上将视频分成块,并在清单文件中提供块的索引。
DASH 使用“.mpd”作为其清单文件类型。
HLS 使用“.m3u”作为其清单文件类型。
所以第一点是,如果您使用的是 M3U 文件,看起来您使用的是 HLS 而不是 DASH。
DASH 和 HLS 都可以支持加密轨道,它们可以在清单中包含指示正在使用的加密方案以及在某些情况下如何访问密钥的信息。
对于 DASH,您可以在此处查看示例(来自:https://dashif-documents.azurewebsites.net/Guidelines-Security/master/Guidelines-Security.html):
<ContentProtection
schemeIdUri="urn:uuid:d0ee2730-09b5-459f-8452-200e52b37567"
value="FirstDRM 2.0">
<cenc:pssh>YmFzZTY0IGVuY29kZWQgY29udGVudHMgb2YgkXBzc2iSIGJveCB3aXRoIHRoaXMgU3lzdGVtSUQ=</cenc:pssh>
<dashif:authzurl>https://example.com/tenants/5341/authorize</dashif:authzurl>
<dashif:laurl>https://example.com/AcquireLicense</dashif:laurl>
</ContentProtection>
以上是一个虚构的 DRM - 例如对于widevine,您可以替换widevine schemeIdUri。
HLS DRM 信息如下所示(来自:https://www.rfc-editor.org/rfc/rfc8216):
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"
#EXTINF:2.833,
http://media.example.com/fileSequence52-A.ts
#EXTINF:15.0,
http://media.example.com/fileSequence52-B.ts
#EXTINF:13.333,
http://media.example.com/fileSequence52-C.ts
没有绝对的规则,但通常在不同的应用和设备上使用不同的 DRM。粗略的指南:
Android 设备 - Widevine PC 或 MAC 上的 Chrome 浏览器 - Widevine ios 设备 - FairPlay Safari 浏览器 - FairPlay Internet Explorer 浏览器 - PlayReady【讨论】:
以上是关于如何将破折号 DRM 许可证添加到 m3u 播放列表?的主要内容,如果未能解决你的问题,请参考以下文章
Exoplayer 2.0 上的 Widevine DRM 内容