我认为您的示例可能混淆了几个不同的概念。
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