预设模板与自定义策略
选择与已发布加密内容匹配的 DRM-X 许可证策略,设置有效期、输出保护和各清晰度档位的播放规则。
为内容选择策略
策略应与视频打包加密时使用的密钥模型一致。
- Single Key Protection
所有轨道共用一个策略:single-software、single-hdcp 或 single-hardware。
- Multi-key Quality Tiered
使用 multi-tier-standard,为音频、SD、HD 和 UHD 分别设置安全规则。
使用服务器端命名策略模板#
Single Video Key Protection(单个视频密钥保护)
所有视频清晰度共用一个视频密钥。加密音频使用独立的音频密钥。纯音频内容使用一个音频密钥。
密钥用于标识加密媒体;策略规则定义访问要求。对于 Single Video Key Protection,一条 ALL 规则对视频密钥和任何加密音频密钥应用相同要求。这并不表示音频和视频共用一个密钥。Multi-key Quality Tiered 加密输出包分别使用 AUDIO 规则和视频画质规则。
使用命名模板后,应用代码无需维护大部分策略 JSON。DRM-X 会将模板名称展开为规范的 v2 策略,根据实际加密输出包验证策略,再将结果签入 DRM License Token。
为内容选择策略
策略应与视频打包加密时使用的密钥模型一致。
- Single Key Protection
所有轨道共用一个策略:single-software、single-hdcp 或 single-hardware。
- Multi-key Quality Tiered
使用 multi-tier-standard,为音频、SD、HD 和 UHD 分别设置安全规则。
| 名称 | 加密输出包的密钥模型 | 规则说明 |
|---|---|---|
single-software | 单密钥 | 兼容性广,使用软件 DRM,不设置最低 HDCP 要求。 |
single-hdcp | 单密钥 | 软件 DRM,要求 HDCP 1.x 级输出保护。 |
single-hardware | 单密钥 | 硬件安全 DRM,要求 HDCP 2.2 级输出保护。 |
multi-tier-standard | 多密钥 | 音频和 SD 使用软件 DRM;HD 使用软件 DRM + HDCP;UHD1 使用硬件安全 DRM + HDCP 2.2。 |
{
"contentId": "course-12-lesson-4",
"contentType": "vod",
"drmSystem": "widevine",
"subject": "customer-user-1001",
"playbackMode": "streaming",
"licensePolicyTemplate": "multi-tier-standard",
"useEnvironmentDefaults": true,
"maximumQualityTier": "auto"
}
启用 useEnvironmentDefaults: true 时,模板提供安全规则,已保存的环境设置决定 DRM License Token 有效期、并发播放数和续期方式。若需严格使用模板中的这些运行参数,请将该选项设为 false。
应用可通过 GET /api/v1/playback/license-policy-templates 查询当前内置模板。输入模板名称时不区分大小写,请求中会使用规范名称。
在请求中提交完整的自定义策略#
命名模板无法满足业务规则时,请使用 licensePolicy。同一请求中不要同时发送 licensePolicyTemplate。
{
"policy_version": 2,
"playback_policy": {
"persistent": false,
"license_duration": 14400,
"rental_duration": 0,
"playback_duration": 7200,
"renewal_duration": 300,
"allowed_track_types": "ALL",
"max_stream_per_user": 2
},
"security_policy": [{
"track_type": "ALL",
"widevine": {
"security_level": 1,
"required_hdcp_version": "HDCP_V1",
"disable_analog_output": true
},
"playready": {
"security_level": 2000,
"digital_video_protection_level": 250,
"analog_video_protection_level": 150,
"digital_audio_protection_level": 100
},
"fairplay": {
"hdcp_enforcement": 0,
"allow_airplay": true,
"allow_av_adapter": false
},
"wiseplay": {
"security_level": 1,
"output_control": 1
}
}]
}
验证失败时拒绝授权的规则
- 策略 JSON 不得超过 16 KiB,必须使用
policy_version: 2,最多包含七条不重复的轨道规则。 - 单密钥内容必须包含一条
ALL规则、allowed_track_types: ALL,并使用自动画质上限。 - 多密钥规则可针对
AUDIO、SD、HD、UHD1或UHD2设置。未列入规则的档位不会获得解密密钥。 max_stream_per_user: 0表示对此 Token 禁用 DRM-X 的并发播放数限制。expiresInSeconds是 DRM License Token 的有效期(60–7200 秒),与 DRM 许可证有效期和允许播放时长分别设置。
DRM-X 6.0