更新时间:2024-01-02 11:10:15
本文档旨在指导如何使用Media Acceleration Live BroadcastAPI 对指定流执行 DRM 加密。
请完成以下任务:
运行以下 curl 脚本来加密流https://drmtest-pull.cdnetworks.com/live/drmtest.mpd :
curl -i --url 'http://ca.haplat.net/wslive/drm/register.action?n=accountId&r=random&k=token' \
-X 'POST' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://drmtest-pull.cdnetworks.com/live/drmtest.mpd",
"encryptType": "drm",
"action": "add",
"expire": "1682819355"
}'
上述请求已加密名称为“drmtest”且应用程序名称为“live”的流。加密后,此 DASH 流将受到 Widevine 和 PlayReady 的保护。
要验证您的流是否已加密,您可以检查 HLS 或 DASH 清单文件。在此示例中,我们将查看 DASH .mpd 文件。清单文件将包含一个名为 ContentProtection 的标头,其中包含生成许可证质询所需的对象。示例(截断)如下所示:
</ContentProtection>
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
<cenc:pssh>AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAnnEHpafEPZng9h+r1lDBZI49yVmwY=</cenc:pssh>
</ContentProtection>
请求中需要以下标头和参数:
物品 | 类型 | 必需的 | 描述 |
---|---|---|---|
Content-Type | Header | 是的 | 应用程序/json |
n | Param | 是的 | 您的帐户名称。 |
k | Param | 是的 | 唯一的随机字符串,最大长度为13,建议使用时间戳。 |
r | Param | 是的 | MD5 认证值。 k = md5(r + apikey) ,即获取’k’的值,将字符串apikey追加到字符串’r’的末尾,然后对得到的字符串进行MD5计算。 注:apikey可向客服索取。 例如, 1。请求并获取apikey=012f37a3f2952 2.随机生成字符串r=1409284800 3.将 apikey 附加到“r”的末尾,生成字符串“1409284800012f37a3f2952” 4。计算新字符串的MD5哈希得到’k’的值,即’b9fed80be752551834eec3e52fa94115’ |
在请求正文中包含以下项目:
物品 | 类型 | 必需的 | 描述 |
---|---|---|---|
url | String | 是的 | 该字段表示您要加密的流的 URL,例如: https://poctest-push.8686c.com/live/dashdrm.mpd 请注意以下事项:1。在使用 DRM 之前,您必须启用 HTTPS。尽管基于 HTTP 的 URL 仍可用于加密,但播放可能会失败,因为 DRM 系统需要 HTTPS。2.无需加密流的每个分辨率,因为一旦原始流被加密,每个分辨率都会自动加密。 |
encryptType | String | 是的 | “encryptType”字段应始终设置为“drm”。 |
action | String | 不 | “action”字段可以具有以下值之一:“add”、“del”或“update”:- add:为新流配置 DRM。- del:禁用现有流的 DRM。- 更新:更新现有流的加密信息。 |
expire | String | 不 | DRM 到期日期,必须以 Linux 时间戳格式提供。如果未指定此字段,则此流的 DRM 将永不过期。 |
{
"msg": true,
"code": 200,
"callTime": "2022-12-07 21:50:16"
}
错误代码 | 信息 | 细节 |
---|---|---|
400 | 身份验证参数丢失。 | 缺少身份验证参数“n”、“k”或“r”。 |
400 | 加密类型不正确。 | “encryptType”参数未指定为“drm”。 |
400 | 动作方法错误。 | 不支持的操作类型。仅支持“添加”、“删除”或“更新”。 |
400 | 内容已经添加到系统中。 | 内容已经加密,无法再次加密。 |
400 | 该流不存在于记录中,删除失败。 | 找不到您要删除的流的 DRM 信息。 |
403 | 认证失败。 | 认证参数错误或无API请求权限。 |
404 | 404 未找到。 | API 请求 URL 不正确。 |
405 | 请求方法错误。 | 不是 POST 请求。 |
500 | 内部服务器错误。 | 服务异常。 |