云点播 EZDRM 接入指引

这篇将介绍如何将使用的 EZDRM 相关服务集成到腾讯云点播的服务体系中,即使用腾讯云点播的媒资存储管理和转码能力的同时,保留 EZDRM 能力的使用。下面介绍主要分为两部分:接入流程和播放验证。

相关产品
云点播 产品页,含版本规格、价格与购买入口。

一、步骤一:注册服务

开通 EZDRM 账号,具体可以联系 EZDRM 厂商。

二、步骤二:配置服务

需要配置 FairPlay 信息,主要是上传 FairPlay 的证书信息。EZDRM 会对上传的 FairPlay 证书进行加密,具体配置方法可参考 EZDRM 控制台的指引说明。配置完成后,便可以在控制台看到各个 DRM 信息。如下是 FairPlay 的账号信息:

三、通过 API 发起加密任务

通过 API 发起加密任务需要两步,先生成 KeyServerURL,然后再通过 API 发起任务。

四、步骤一:生成 KeyServerUrl

EZDRM 与其他 DRM 厂商有所区别,大部分厂商都是通过 HTTP POST 方式请求密钥信息,即使用 CPIX 协议的 xml 作为请求内容,通过在 xml 中声明所需要的密钥信息。但是 EZDRM 却不是,它是直接在 KeyServerUrl 里面指明需要的密钥信息,也就是使用 HTTP GET 方法,不能带 CPIX xml。

详情可参考 EZDRM 的 CPIX 使用方法。

请求示例如下:

单密钥(preset0)

// 单密钥(preset0)// cbcs: curl -X GET "https://cpix.ezdrm.com/KeyGenerator/cpix2.aspx?k=79ee2a21-0c2b-4978-b681-d98e529271c8&t=xxxx&c=speke_cbcs&EncryptionScheme=cbcs"// cenc:curl X GET "https://cpix.ezdrm.com/KeyGenerator/cpix2.aspx?k=49d1e0c1-fdd7-4c8f-9eb4-94e207b796f3&t=xxxx&c=speke_cenc"

参数说明:

·k 表示 keyid,可以用 Free Online GUID Generator 生成。

·t 是账号 token,可以从 EZDRM 控制台获取。

·EncryptionScheme 是加密模式,值为 cbcs、cenc,默认是 cenc。

·c 是 resourceid(contentid、assetid),任意字符串。

使用的时候修改下 keyid 即可。

多密钥(preset1)

// 多密钥(preset1)// cbcs:curl -X GET "https://cpix.ezdrm.com/KeyGenerator/cpix2.aspx?k=empty,audio1=8aeb097c-4e3a-4731-8702-d362fff64e36,video1=64173552-957a-4dfc-86ba-09f2a3270f5f&t=xxxx&c=speke_cbcs&EncryptionScheme=cbcs"// cenc:curl -X GET "https://cpix.ezdrm.com/KeyGenerator/cpix2.aspx?k=empty,audio1=61967e3f-9345-430c-9ea7-6e0c5ee64bc6,video1=181320ff-d1bf-46f8-949a-82075bd78c2b,video2=3be09650-fdba-47d6-b2a5-d2e422e92b04&t=xxxx&c=speke_cenc"

参数说明:

·k 表示 keyid,这里固定填 empty。

·audio1=xxx、video1=xxx、video2=xxx 表示请求3组密钥,后面的 uuid 就是对应的 keyid。EZDRM 最多支持3组密钥,audio1 和 video1/video2 只是标识并不是说 audio1 的密钥只能音频用。

·t 是账号 token,可以从 EZDRM 控制台获取。

·EncryptionScheme 是加密模式,值为 cbcs、cenc,默认是 cenc。

·c 是 resourceid(contentid、assetid),任意字符串。

使用的时候修改下 audio1、video1 和 video2 即可。

五、步骤二:通过 API 发起任务

使用第三方 DRM 供应商时,无需在模板中配置 DRM 信息。使用不带 DRM 配置的自适应码流模板,通过 ProcessMedia 接口在发起任务时传入 DRM 参数即可。

数据结构

DrmInfo

字段名 类型 是否数组 描述
DrmTypes string 是 DRM 类型数组,可传入多个,目前支持 [Widevien, Fairplay, Playready]。模板切片格式必须为 fmp4、Fairplay:只能用于 HLS。Widevine:可以用于 HLS 和 DASH。Playready:可以用于 HLS 和 DASH。如多种 DRM 类型组合包含 Fairplay,则只能用于 HLS,除此之外的其他 DRM 组合可以用于 HLS 或 DASH。
SPEKEDrm SPEKEDrm 否 第三方 DRM 信息。

SPEKEDrm

字段名 类型 是否数组 描述
ResoruceId string 否 资源标记,该字段内容为用户自定义; 支持1-128个字符的数字、字母、下划线(_)、中划线(-)。 该字段对应 Speke 请求中的 cid 字段。
KeyServerUrl string 否 DRM 厂商访问地址,该字段内容从 DRM 厂商获取。注意:不同 DRM 厂商对子流的数量限制不一样,如 PallyCon 限制不能超过5条子流,DRMtoday 厂商最多仅支持9条子流加密。
Vector string 否 加密初始化向量(十六进制32字节字符串),该字段内容为用户自定义。
EncryptionMethod string 否 加密方式,可选值 [cbcs, cenc]。cbcs:所有 DRM 加密类型组合均支持。cenc:仅包含 Playready、Widevine 的组合支持。
EncryptionPreset string 否 子流加密规则,可选值 [preset0, preset1],默认 preset0。preset0:全部子流使用同一个 key 加密。preset1:每个子流使用不同的 key 加密。
KeyAcquireMode string 否 DRM 厂商请求方式。可选值 [POST, GET]。POST:大多数 DRM 厂商使用 POST 方式请求。GET:部分 DRM 厂商支持 GET 方式请求。使用该种方式请求时,需要在 KeyServerUrl 字段带上各项请求信息。

请求示例

对于 EZDRM,目前主要支持 GET 请求,我们同步给到支持 POST 请求模式的示例代码。

使用支持 GET 请求模式的 DRM 厂商(EZDRM)使用支持 POST 请求模式的 DRM 厂商{ "FileId": "966***********", "MediaStoragePath": null, "SubAppId": 2600*****, "MediaProcessTask": { "AdaptiveDynamicStreamingTaskSet": [ { "Definition": 1010****, "DrmInfo": { "DrmTypes": [ "Widevine", "Fairplay" ], "SPEKEDrm": { "ResourceId": "test-drm-0002", "KeyServerUrl": "https://cpix.ezdrm.com/KeyGenerator/cpix2.aspx?k=*****************************&t=***********8*&c=speke_cbcs&EncryptionScheme=cbcs", "Vector": "3995502b2c0bed6c54ad1c89af9c5ea3a97b4b71048d4178fb234b4c6e85b4c9", "EncryptionMethod": "cbcs", "EncryptionPreset": "preset0", "KeyAcquireMode": "GET" } } } ] }}{ "FileId": "966****************", "MediaStoragePath": null, "SubAppId": 2600*****, "MediaProcessTask": { "AdaptiveDynamicStreamingTaskSet": [ { "Definition": 1010****, "DrmInfo": { "DrmTypes": [ "Widevine", "Fairplay" ], "SPEKEDrm": { "ResourceId": "test-drm-0001", "KeyServerUrl": "https://fe.drmtoday.com/frontend/cpix/v1/***************/ingest/************", "Vector": "3995502b2c0bed6c54ad1c89af9c5ea3a97b4b71048d4178fb234b4c6e85b4c9", "EncryptionMethod": "cbcs", "EncryptionPreset": "preset0" } } } ] }}

六、播放验证

播放可以参考 EZDRM 产品文档。

下面以 Shaka Player 为例进行说明,License 中的 px 可以从 EZDRM 控制台获取。

DRM 协议 License URL
FairPlay License URL:https://fps.ezdrm.com/api/licenses/auth?px=xxxxxxCertificate URL:<存放 FairPlay Certificate 证书的 URL>
Widevine License URL:https://widevine-dash.ezdrm.com/proxy?pX=xxxxxx
PlayReady License URL:https://playready.ezdrm.com/cency/preauth.aspx?pX=xxxxxx

配置的参考界面如下:

按照以上操作,你就完成了 EZDRM 服务对接腾讯云服务的全部操作。

赞 (0)
上一篇 4天前
下一篇 4天前