Я думаю, что в вашем примере может быть смешано несколько разных концепций.
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 вы должны заменить схему widevineIdUri.
Информация HLS DRM выглядит так (от: https://tools.ietf.org/html/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
- Браузер Chrome на ПК или MAC - Widevine
- iOS-устройство – FairPlay
- Браузер Safari - FairPlay
- Браузер Internet Explorer - PlayReady
20.11.2020