Я работаю над проектом, в котором мне нужно настроить защиту контента DRM для моих видео. Он отлично работает для Widevine и PlayReady, и теперь мне нужно настроить FairPlay.
Я следовал инструкциям в Руководстве по созданию учетных данных FPS, поэтому у меня есть сертификат и запрос. Я создал параметр политики ключа содержимого, следуя этому руководству: Лицензионные требования и конфигурация Apple FairPlay. Используя интерфейс командной строки, я вижу, что для него определены запросы fairPlayPfx
и fairPlayPfxPassword
.
Я использую политику потоковой передачи Predefined_MultiDrmStreaming
, и у меня есть локатор потоковой передачи, который возвращает пять URL-адресов потоковой передачи (два для DASH, два для HLS и один для SmoothStreaming).
Я использую video-js
и videojs-contrib-eme
для воспроизведения видео. Чтобы настроить систему ключей FairPlay, мне нужен URL-адрес сертификата и URL-адрес лицензии FairPlay в соответствии с документацией: Получить сертификат / лицензию по URL.
Моя проблема в том, что я не знаю, где найти этот URL-адрес лицензии. Я проверил файл манифеста HLS, но его там нет. Я использую службу лицензирования служб мультимедиа Azure по умолчанию, поэтому я не отменяю customLicenseAcquisitionUrlTemplate
в политике потоковой передачи.
Заранее спасибо!
-- редактировать --
Файл моего манифеста (формат = m3u8-cmaf, encryption = cbcs-aapl):
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="aac_und_2_127998_2_1",LANGUAGE="und",DEFAULT=YES,AUTOSELECT=YES,CHANNELS="2",URI="QualityLevels(127998)/Manifest(aac_und_2_127998_2_1,format=m3u8-cmaf,encryption=cbcs-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=239626,RESOLUTION=320x180,CODECS="avc1.64000d,mp4a.40.2",AUDIO="audio"
QualityLevels(90502)/Manifest(video,format=m3u8-cmaf,encryption=cbcs-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=239626,RESOLUTION=320x180,CODECS="avc1.64000d",URI="QualityLevels(90502)/Manifest(video,format=m3u8-cmaf,type=keyframes,encryption=cbcs-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=310148,RESOLUTION=480x270,CODECS="avc1.640015,mp4a.40.2",AUDIO="audio"
QualityLevels(159506)/Manifest(video,format=m3u8-cmaf,encryption=cbcs-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=310148,RESOLUTION=480x270,CODECS="avc1.640015",URI="QualityLevels(159506)/Manifest(video,format=m3u8-cmaf,type=keyframes,encryption=cbcs-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=413000,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2",AUDIO="audio"
QualityLevels(260144)/Manifest(video,format=m3u8-cmaf,encryption=cbcs-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=413000,RESOLUTION=640x360,CODECS="avc1.64001e",URI="QualityLevels(260144)/Manifest(video,format=m3u8-cmaf,type=keyframes,encryption=cbcs-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=633193,RESOLUTION=960x540,CODECS="avc1.64001f,mp4a.40.2",AUDIO="audio"
QualityLevels(475597)/Manifest(video,format=m3u8-cmaf,encryption=cbcs-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=633193,RESOLUTION=960x540,CODECS="avc1.64001f",URI="QualityLevels(475597)/Manifest(video,format=m3u8-cmaf,type=keyframes,encryption=cbcs-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=138973,CODECS="mp4a.40.2",AUDIO="audio"
QualityLevels(127998)/Manifest(aac_und_2_127998_2_1,format=m3u8-cmaf,encryption=cbcs-aapl)
Файл моего манифеста (формат = m3u8-aapl, encryption = cbcs-aapl):
#EXTM3U
#EXT-X-VERSION:5
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="aac_und_2_127998_2_1",LANGUAGE="und",DEFAULT=YES,AUTOSELECT=YES,URI="QualityLevels(127998)/Manifest(aac_und_2_127998_2_1,format=m3u8-aapl)"
#EXT-X-STREAM-INF:BANDWIDTH=239626,RESOLUTION=320x180,CODECS="avc1.64000d,mp4a.40.2",AUDIO="audio"
QualityLevels(90502)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=239626,RESOLUTION=320x180,CODECS="avc1.64000d",URI="QualityLevels(90502)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=310148,RESOLUTION=480x270,CODECS="avc1.640015,mp4a.40.2",AUDIO="audio"
QualityLevels(159506)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=310148,RESOLUTION=480x270,CODECS="avc1.640015",URI="QualityLevels(159506)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=413000,RESOLUTION=640x360,CODECS="avc1.64001e,mp4a.40.2",AUDIO="audio"
QualityLevels(260144)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=413000,RESOLUTION=640x360,CODECS="avc1.64001e",URI="QualityLevels(260144)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=633193,RESOLUTION=960x540,CODECS="avc1.64001f,mp4a.40.2",AUDIO="audio"
QualityLevels(475597)/Manifest(video,format=m3u8-aapl)
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=633193,RESOLUTION=960x540,CODECS="avc1.64001f",URI="QualityLevels(475597)/Manifest(video,format=m3u8-aapl,type=keyframes)"
#EXT-X-STREAM-INF:BANDWIDTH=138973,CODECS="mp4a.40.2",AUDIO="audio"
QualityLevels(127998)/Manifest(aac_und_2_127998_2_1,format=m3u8-aapl)