Encrypt the Stream

更新时间:2024-01-02 11:10:15

本文档旨在指导如何使用Media Acceleration Live BroadcastAPI 对指定流执行 DRM 加密。

在你开始之前

请完成以下任务:

  1. 确保已启用 DRM 功能。如果您需要帮助配置它,请联系客户服务。
  2. 启用 HTTPS,因为 DRM 播放需要它。 HTTP 流会导致播放失败。
  3. 在加密之前创建实时流。您将需要应用程序名称和流名称来执行加密。

加密流的示例请求

运行以下 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 内部服务器错误。 服务异常。
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!