You need to enable JavaScript to run this app.
视频直播

视频直播

Copy page
Download PDF
访问控制
配置 URL 鉴权
Copy page
Download PDF
配置 URL 鉴权

为保障直播资源不被非法盗用,您可以使用 URL 鉴权功能,在原始的推流或拉流地址末尾添加鉴权信息。当用户使用带有鉴权信息的 URL 发起推流或拉流请求时,视频直播服务端会对鉴权参数进行校验。只有通过校验的请求才会被响应,未通过校验的请求将被拒绝。本文介绍如何通过控制台配置 URL 鉴权。

适用范围

URL 鉴权适用于推流和拉流域名。

  • 配置推流域名的 URL 鉴权:用于控制哪些 URL 可以推流,从而防止未经授权的用户进行直播推流,保护直播内容的来源。推流域名目前仅支持配置 B 类型的 URL 鉴权。
  • 配置拉流域名的 URL 鉴权:用于控制哪些 URL 可以拉流,确保只有通过特定 URL 才能够观看直播。拉流域名支持配置 A 类型、B 类型和 C 类型的 URL 鉴权。

前提条件

已完成添加域名。

URL 鉴权流程
  1. 客户服务端生成鉴权 URL,并将鉴权 URL 提供给用户。
  2. 用户使用鉴权 URL,向视频直播服务端发起推流或拉流请求。
  3. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。通过与请求中的鉴权参数进行对比,判断请求是否合法。
    • 请求合法:响应请求。用户可以正常推流或拉流。
    • 请求不合法:返回 403 错误,拒绝请求。用户无法推流或拉流,从而保护直播资源。

操作步骤
  1. 登录视频直播控制台。
  2. 在左侧导航栏,单击域名管理。
  3. 在域名管理页面,找到需要配置的推流域名或拉流域名,单击操作列的域名配置,进入域名配置页面。
  4. 单击访问控制页签。
  5. 打开 URL鉴权开关,或单击 URL鉴权区域的编辑配置。
  6. 在弹出的编辑 URL 鉴权对话框中,根据您的业务需求选择以下任一鉴权方式,并完成以下配置。

    说明

    • 系统默认会为推流域名开启 URL 鉴权。
    • 目前推流域名仅支持 B 类鉴权方式。
    • 如果以上鉴权方式无法满足您的业务需求,请创建工单联系技术支持,完成 URL 自定义鉴权配置。
  7. 获取鉴权 URL。
    您可以参考 A 类鉴权方式、B 类鉴权方式或 C 类鉴权方式的介绍,自行拼接鉴权 URL,也可以通过以下步骤,通过地址生成器获取鉴权 URL。

    说明

    通过 URL 自定义鉴权配置的域名,如需获取鉴权 URL,可根据自定义鉴权规则自行拼接或创建工单联系技术支持。

    1. 在左侧导航栏,选择地址生成器。
    2. 选择推流地址或拉流地址。
    3. 选择域名,配置 AppName、StreamName 和过期时间。详见地址生成器。
    4. 单击生成推流地址或生成拉流地址。
    5. 在页面右侧,获取鉴权 URL。

A 类鉴权方式

工作原理

鉴权 URL 格式:

原始URL?auth_key={timestamp}-{rand}-{uid}-{md5hash}

字段描述示例值
auth_key签名参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。auth_key

timestamp

Unix 时间戳,单位为秒。支持十进制或十六进制,且必须与控制台的编辑 URL 鉴权对话框中配置的时间格式一致。

该字段与编辑 URL 鉴权对话框中配置的有效时长搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。

签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

1758296819

rand

随机数,可使用 UUID(Universally Unique Identifier,通用唯一识别码)格式,不能包含中划线(-)。

说明

通过控制台的地址生成器生成鉴权 URL 时,该字段取值固定为 0。

123e4567

uid用户 ID。预留参数,暂未使用,设置为 0 即可。0

md5hash

通过 MD5 加密算法计算出的 32 位小写字符串。

计算公式如下所示:

sstring = "{URI}-{timestamp}-{rand}-{uid}-{key}"
md5hash = md5sum(sstring)

其中,

  • URI:原始 URL 中从域名后开始到最后的路径。例如原始 URL 为 http://pull.example.com/live/test.flv,则 URI 取值为 /live/test.flv。
  • key:主密钥或备密钥。可在控制台的编辑 URL 鉴权对话框中配置。例如 123abc。

在该示例中,{URI}-{timestamp}-{rand}-{uid}-{key} 取值为 /live/test.flv-1758296819-123e4567-0-123abc,对该取值进行 MD5 加密生成 32 位小写字符串,则 md5hash 取值为 fbe5e26c0b7abe1431c****7f7bdc278。

fbe5e26c0b7abe1431c****7f7bdc278

鉴权 URL 示例:

http://pull.example.com/live/test.flv?auth_key=1758296819-123e4567-0-fbe5e26c0b7abe1431c****7f7bdc278

鉴权流程

  1. 视频直播服务端收到用户鉴权 URL 的请求后,对 {URI}-{timestamp}-{rand}-{uid}-{key} 取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 fbe5e26c0b7abe1431c****7f7bdc278。
  2. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
    • 判断服务端计算出的 MD5 哈希值与请求中签名参数(本文示例为 auth_key)中的 md5hash 是否一致。一致,则校验通过。在本文示例中,请求中签名参数里的 md5hash 为 fbe5e26c0b7abe1431c****7f7bdc278。
    • 判断签名是否失效。服务端使用签名参数(本文示例为 auth_key)中的 timestamp 计算签名失效时间(timestamp + 有效时长),并与当前时间进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。

    说明

    • 对于 RTMP、FLV 等用于长时间直播拉流的协议,当用户发起拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,拉流就不会因签名失效而中止。仅新发起的拉流请求会因签名失效而失败。
    • HLS 和 DASH 协议用于分段视频播放,用户会不断地发起新的拉流请求,以获取后续分段内容。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中需要持续请求后续分段内容,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
  3. 根据校验结果,判断请求是否合法。
    • 校验通过:请求合法,响应请求。用户可以正常拉流。
    • 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法拉流,从而保护直播资源。

控制台配置

Image

配置项描述

主KEY

主密钥。

支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。

您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

备KEY

备密钥,可用于平滑更换主密钥。

支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。

您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

说明

为避免线上业务中断,在更换主密钥时,可以使用备密钥生成鉴权 URL,实现平滑过渡。在过渡期间,可将鉴权 URL 替换为备密钥生成的版本,待主密钥更换后,再逐步替换为新的主密钥生成的鉴权 URL。

签名参数

签名参数的名称。默认值为 auth_key。

支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

必须至少包含一个字母。

有效时长

签名的有效时长。单位为秒。默认值为 600,取值范围为 [0,2592000]。

该参数与鉴权 URL 中的 timestamp 参数搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。

签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

时间格式

timestamp 的时间格式。默认为十进制。取值如下:

  • 十进制
  • 十六进制

B 类鉴权方式

工作原理

鉴权 URL 格式:

原始URL?volcSecret=md5(/{AppName}/{StreamName}{key}{timestamp})&volcTime=timestamp

字段描述示例值
volcSecret签名参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。volcSecret

AppName

直播流地址的 AppName 字段取值。长度为 1 到 30 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)

例如原始 URL 为 http://pull.example.com/live/test.flv,则 AppName 取值为 live。

live

StreamName

直播流地址的 StreamName 字段取值。长度为 1 到 100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)

例如原始 URL 为 http://pull.example.com/live/test.flv,则 StreamName 取值为 test。

test

key主密钥或备密钥。可在控制台的编辑 URL 鉴权对话框中配置。123abc

timestamp

Unix 时间戳,单位为秒。支持十进制或十六进制,且必须与控制台的编辑 URL 鉴权对话框中配置的时间格式一致。

该字段与编辑 URL 鉴权对话框中配置的有效时长搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 推流或拉流。

签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

1758296819

volcTime时间戳参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。volcTime

基于 md5(/{AppName}/{StreamName}{key}{timestamp}) 计算签名值。在本文示例中,/{AppName}/{StreamName}{key}{timestamp} 取值为 /live/test123abc1758296819,对该取值进行 MD5 加密生成 32 位小写字符串,则获得 1e2ea5d60de5adcf5****688ccd76915。

鉴权 URL 示例:

http://pull.example.com/live/test.flv?volcSecret=1e2ea5d60de5adcf5****688ccd76915&volcTime=1758296819

鉴权流程

  1. 视频直播服务端收到用户鉴权 URL 的请求后,对 /{AppName}/{StreamName}{key}{timestamp}取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 1e2ea5d60de5adcf5****688ccd76915。
  2. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
    • 判断服务端计算出的签名值与请求中签名参数(本文示例为 volcSecret)的值是否一致。一致,则校验通过。在本文示例中,签名参数的值为 1e2ea5d60de5adcf5****688ccd76915。
    • 判断签名是否失效。服务端将时间戳参数(本文示例为 volcTime)的值作为 timestamp,计算签名失效时间(timestamp + 有效时长),并与当前时间进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。

    说明

    • 对于 RTMP、FLV 等用于长时间直播推流或拉流的协议,当用户发起推流或拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续推流或拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,推流或拉流就不会因签名失效而中止。仅新发起的推流或拉流请求会因签名失效而失败。
    • HLS 和 DASH 协议用于分段视频播放,用户会不断地发起新的拉流请求,以获取后续分段内容。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中需要持续请求后续分段内容,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
  3. 根据校验结果,判断请求是否合法。
    • 校验通过:请求合法,响应请求。用户可以正常推流或拉流。
    • 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法推流或拉流,从而保护直播资源。

控制台配置

Image

配置项描述

主KEY

主密钥。

支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。

您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

备KEY

备密钥,可用于平滑更换主密钥。

支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。

您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

说明

为避免线上业务中断,在更换主密钥时,可以使用备密钥生成鉴权 URL,实现平滑过渡。在过渡期间,可将鉴权 URL 替换为备密钥生成的版本,待主密钥更换后,再逐步替换为新的主密钥生成的鉴权 URL。

签名参数

签名参数的名称。默认值为 volcSecret。

支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

时间戳参数

时间戳参数的名称。默认值为 volcTime。

支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

有效时长

签名的有效时长。单位为秒。默认值为 600,取值范围为 [0,2592000]。

该参数与鉴权 URL 中的 timestamp 参数搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 推流或拉流。

签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 1758296819(2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 1758297419(2025-09-19 23:56:59)。

时间格式

timestamp 的时间格式。默认为十进制。取值如下:

  • 十进制
  • 十六进制

说明

推流域名仅支持十进制。

C 类鉴权方式

工作原理

鉴权 URL 格式:

原始URL?txSecret=md5({key}{StreamName}{timestamp})&txTime=timestamp

字段描述示例值
txSecret签名参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。txSecret
key主密钥或备密钥。可在控制台的编辑 URL 鉴权对话框中配置。123abc

StreamName

直播流地址的 StreamName 字段取值。长度为 1 到 100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)

例如原始 URL 为 http://pull.example.com/live/test.flv,则 StreamName 取值为 test。

test

timestamp

Unix 时间戳,单位为秒。支持十进制或十六进制,且必须与控制台的编辑 URL 鉴权对话框中配置的时间格式一致。

该字段与编辑 URL 鉴权对话框中配置的有效时长搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。

签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 68cd7af3(即十进制 Unix 时间戳为 1758296819 的十六进制表示,对应 2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 68cd7d4b(即十进制 Unix 时间戳为 1758297419 的十六进制表示,对应 2025-09-19 23:56:59)。

68cd7af3

txTime时间戳参数的名称。可在控制台的编辑 URL 鉴权对话框中配置。txTime

基于 md5({key}{StreamName}{timestamp}) 计算签名值。在本文示例中,{key}{StreamName}{timestamp} 取值为 123abctest68cd7af3,对该取值进行 MD5 加密生成 32 位小写字符串,则获得 73af6af9c874d9d4****f8490325cd7b。

鉴权 URL 示例:

http://pull.example.com/live/test.flv?txSecret=73af6af9c874d9d4****f8490325cd7b&txTime=68cd7af3

鉴权流程

  1. 视频直播服务端收到用户鉴权 URL 的请求后,对 {key}{StreamName}{timestamp} 取值进行 MD5 加密生成 32 位小写字符串。在本文示例中,最终生成的字符串为 73af6af9c874d9d4****f8490325cd7b。
  2. 视频直播服务端对鉴权 URL 中的鉴权参数进行校验。如果同时满足以下校验,则校验通过。
    • 判断服务端计算出的签名值与请求中签名参数(本文示例为 txSecret)的值是否一致。一致,则校验通过。在本文示例中,签名参数的值为 73af6af9c874d9d4****f8490325cd7b。
    • 判断签名是否失效。服务端将时间戳参数(本文示例为 txTime)的值作为 timestamp,计算签名失效时间(timestamp + 有效时长),并与当前时间进行对比。如果签名失效时间晚于当前时间,则判定签名未失效,校验通过。

    说明

    • 对于 RTMP、FLV 等用于长时间直播拉流的协议,当用户发起拉流请求时,视频直播服务端会对鉴权参数进行校验。一旦校验通过,用户可以持续拉流,不受签名失效时间的影响。因此,只要在签名失效前已经发起请求,拉流就不会因签名失效而中止。仅新发起的拉流请求会因签名失效而失败。
    • HLS 和 DASH 协议用于分段视频播放,用户会不断地发起新的拉流请求,以获取后续分段内容。用户每次发起拉流请求时,视频直播服务端均会对鉴权参数进行校验。因此,一旦签名失效,请求将被拒绝,导致播放中断。由于直播播放过程中需要持续请求后续分段内容,因此建议设置较长的签名失效时间,以避免直播中途播放失败。
  3. 根据校验结果,判断请求是否合法。
    • 校验通过:请求合法,响应请求。用户可以正常拉流。
    • 校验未通过:请求不合法,返回 403 错误,拒绝请求。用户无法拉流,从而保护直播资源。

控制台配置

Image

配置项描述

主KEY

主密钥。

支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。

您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

备KEY

备密钥,可用于平滑更换主密钥。

支持输入 1-100 个字符,可包含数字(0-9)、小写英文字母(a-z)和大写英文字母(A-Z)。

您也可以单击输入框右侧的图标,随机生成包含数字和大小写英文字母的、 长度为 24 个字符的密钥。

说明

为避免线上业务中断,在更换主密钥时,可以使用备密钥生成鉴权 URL,实现平滑过渡。在过渡期间,可将鉴权 URL 替换为备密钥生成的版本,待主密钥更换后,再逐步替换为新的主密钥生成的鉴权 URL。

签名参数

签名参数的名称。默认值为 txSecret。

支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

时间戳参数

时间戳参数的名称。默认值为 txTime。

支持输入 1-100 个字符,可包含:

  • 数字(0-9)
  • 小写英文字母(a-z)
  • 大写英文字母(A-Z)
  • 下划线(_)
  • 中划线(-)
  • 点(.)
  • 逗号(,)
  • 感叹号(!)

说明

  • 必须至少包含一个字母。
  • 签名参数与时间戳参数不能同名。

有效时长

签名的有效时长。单位为秒。默认值为 600,取值范围为 [0,2592000]。

该参数与鉴权 URL 中的 timestamp 参数搭配使用,可用于计算签名的最终失效时间。签名失效后,用户无法通过鉴权 URL 拉流。

签名的失效时间 = timestamp + 有效时长。例如,timestamp 取值为 68cd7af3(即十进制 Unix 时间戳为 1758296819 的十六进制表示,对应 2025-09-19 23:46:59),有效时长为 600 秒,则签名的失效时间为 68cd7d4b(即十进制 Unix 时间戳为 1758297419 的十六进制表示,对应 2025-09-19 23:56:59)。

时间格式

timestamp 的时间格式。默认为十六进制。取值如下:

  • 十进制
  • 十六进制
Last updated: 2026.10.03 19:15:57