video.js - Azure 媒体服务中的 FairPlay 许可证 URL
问题描述
我正在做一个需要为我的视频设置 DRM 内容保护的项目。它适用于 Widevine 和 PlayReady,现在我需要配置 FairPlay。
我按照 FPS Credential Creation Guide 中的说明进行操作,因此我拥有了证书和 ASk。我按照本指南创建了内容密钥策略选项:Apple FairPlay license requirements and configuration。使用 CLI,我可以看到它有询问fairPlayPfx
和fairPlayPfxPassword
定义。
我正在使用Predefined_MultiDrmStreaming
流式传输策略,并且我有一个流式定位器,它返回五个流式 URL(两个用于 DASH,两个用于 HLS,一个用于 SmoothStreaming)。
我正在使用video-js
和videojs-contrib-eme
播放视频。要配置 FairPlay 密钥系统,我需要证书 URL 和 FairPlay 许可证 URL,根据文档:Get Certificate/License by URL。
我的问题是我不知道在哪里可以找到该许可证 URL。我检查了 HLS 清单文件,但它不存在。我正在使用默认的 Azure 媒体服务许可服务,因此我没有覆盖customLicenseAcquisitionUrlTemplate
流式传输策略中的。
先感谢您!
- 编辑 -
我的清单(格式=m3u8-cmaf,加密=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,加密=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)
解决方案
对于 FairPlay 许可证 URL,您可以在 HLS 顶级(或二级)播放列表中找到它,格式为:URI="skd://eventgridmediaservice.keydelivery.westus2-2.media.azure.net/FairPlay/?孩子=70d14e71-4380-470c-acff-61dea6382ccf"
您需要将 skd 替换为 https。
推荐阅读
- c++ - 如何从 R 中调用已编译的 Cpp 程序?
- ios - 如何在 App 中访问 inApp 购买产品而不在代码端声明他们的标识符?
- css - 在 React 中创建平滑滚动(浏览器友好)
- python - “‘连接’层需要具有匹配形状的输入,连接轴除外。” 如何解决这个问题?
- c# - 如何在 Xamarin.iOS 中使用 #available / @available
- excel - 无需编辑 VBA 代码即可解决类型不匹配
- c - C TCP write() 和 read() 来自 main 中定义的套接字
- android - 如何在同一应用程序中使用两个用户(司机和骑手)的共享偏好来维护两个不同的会话?
- linux - 如何在多个文件上使用 awk?
- mysql - 如何删除阻止我删除表的锁