EZDRM 接入指引

最近更新时间:2026-06-04 16:50:02

我的收藏
本文将介绍如何将使用的 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 是加密模式,值为 cbcscenc,默认是 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=xxxvideo1=xxxvideo2=xxx 表示请求3组密钥,后面的 uuid 就是对应的 keyid。EZDRM 最多支持3组密钥,audio1video1/video2 只是标识并不是说 audio1 的密钥只能音频用。
t 是账号 token,可以从 EZDRM 控制台获取。
EncryptionScheme 是加密模式,值为 cbcscenc,默认是 cenc
c 是 resourceid(contentid、assetid),任意字符串。
使用的时候修改下 audio1video1video2 即可。

步骤二:通过 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=xxxxxx
Certificate 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
注意:
Shaka Player 对不同子流使用密钥支持存在问题,因此建议用 preset0 测试。
Widevine 建议用 Mac Edge 或 Mac Chrome。
FairPlay 建议用 Mac Safari。
PlayReady 建议用 Windows11 Edge。
配置的参考界面如下图:


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