Взаимодействие между DRM и пакетными или потоковыми протоколами немного сложное.
HLS и DASH - это потоковые протоколы с адаптивной скоростью передачи битов.Сервер создает несколько фрагментированных версий видео с битрейтом, и это позволяет клиентскому устройству или проигрывателю загружать видео порциями, например, 10-секундными, и выбирать следующий блок с битрейтом, наиболее подходящим для текущих условий сети.См. Также дополнительную информацию в этом ответе: https://stackoverflow.com/a/42365034/334402
Существует файл индекса или манифеста, который представляет собой просто текстовый / XML-файл, содержащий различные потоки видео, аудио, субтитров и т. Д., А также проверяющие URL-адреса для них.Это файл .mpd или .m3u8.
Большинство браузеров не поддерживают эти файлы манифеста HLS и DASH непосредственно (Safari поддерживает HLS в качестве исключения).Вам необходимо использовать проигрыватель HTML5, такой как video.js, Shaka, BitMovin и т. Д.
DRM позволяют зашифровать содержимое и безопасно разделить ключи для содержимого между сервером и клиентами.
Как правило, следующие DRM изначально поддерживаются на устройстве и браузерах - наивно означает, что DRM обычно встроен в ОС или браузер при покупке устройства:
- Устройства Android -Браузер Widevine
- на ПК или MAC - Widevine
- FireFox - Устройство Widevine
- для iOS - FairPlay
- Браузер Safari - FairPlay
- Браузер Internet Explorer - PlayReady
Взаимодействие между DRM и упаковкой становится немного сложнее - MPEG-DASH (часто называемый просто DASH) призван стать отраслевым стандартом, и Google и MS, похоже, одобряютэто, но устройства Apple все еще предпочитают HLS.
DASH поддерживает CENC, что позволяет одному потоку поддерживать несколько типов DRM.HLS обычно используется с FairPlay, хотя он может поддерживать и другие схемы.
Таким образом, с оговоркой, что это не является абсолютным, и можно найти другие примеры, типичный случай, когда служба достигает всех устройств.в это время будет:
- MPEG-DASH - одиночный поток с Widevine и PlayReady DRM
- HLS с FairPlay DRM
Вы можете видеть изКроме того, HTML5-проигрыватели, такие как video.js и т. д., должны проверить браузер, в котором они работают, и типы доступных потоков, чтобы сделать лучший выбор потока.
Итак, возвращаясь к вашему вопросу, вы можете указать потоки HLS и DASH в конфигурации video.js, а не mp4, web и т. Д., Как в приведенном выше фрагменте кода.Это будет выглядеть так:
var player = videojs('some-video-id');
player.src({
src: 'https://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8',
type: 'application/x-mpegURL',
withCredentials: true
});
Этот пример взят из https://github.com/videojs/http-streaming, который теперь является частью стандартной сборки video.js.Документация с примерами очень тяжелая, но она должна работать и с DASH.