设置推流回调配置。
接口说明
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
live:SetLiveStreamsNotifyUrlConfig | update | *Domain acs:cdn:*:{#accountId}:domain/{#DomainName} |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
DomainName | string | 是 | 您的推流域名。 | demo.aliyundoc.com |
NotifyUrl | string | 是 | 直播流信息推送到的 URL 地址。 | http://guide.aliyundoc.com/notify |
NotifyReqAuth | string | 否 | 是否开启鉴权。取值:
说明
不填默认为 no。
鉴权逻辑请参考下文的推流回调鉴权说明。 | yes |
NotifyAuthKey | string | 否 | 鉴权 key。 说明
当请求参数 NotifyReqAuth 取值为 yes 时,本参数必填。
取值要求:
| 123456 |
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": " 40A4F36D-A7CC-473A-88E7-154F92242566"
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | InvalidParam | Parameter invalid. | 输入参数不合法 |
400 | ConfigAlreadyExists | Config has already exist. | 配置已添加。 |
500 | InternalError | The request processing has failed due to backend service exception. | - |
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|
回调逻辑说明
直播推流状态回调中开播(publish)状态回调逻辑:
RTMP 推流在阿里云直播服务收到 On Publish 消息后 2 秒内,如果推流端不主动断开,阿里云直播服务就会发推流成功回调。
假设您有推流域名 A 和播流域名 B,如果您的域名 B 使用拉流直播(固定拉流和触发回源拉流)需要回调,请在域名 A 配置推流回调。配置后域名 B 的拉流回调逻辑与上一条一致,建联后默认 2 秒无主动断开即认为拉流成功。
推流回调鉴权说明
推流回调鉴权功能默认关闭,用户可在配置推流回调地址时启用鉴权。启用功能后,鉴权逻辑如下:
-
阿里云视频直播发起回调请求时在 HTTP(S)请求头中带上
ALI-LIVE-TIMESTAMP
和ALI-LIVE-SIGNATURE
字段,供回调消息接收服务端进行签名认证。其中,ALI-LIVE-SIGNATURE
的值由如下计算而得:ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)
MD5CONTENT=<回调域名>|<ALI-LIVE-TIMESTAMP 取值>|<鉴权 KEY>
-
回调消息接收服务端接收回调消息时,将回调域名、ALI-LIVE-TIMESTAMP 取值、鉴权 Key 进行拼接后计算 MD5 值,得到加密字符串,再将计算出的加密字符串与视频直播发起的 HTTP(S)请求头中的 ALI-LIVE-SIGNATURE 字段值进行对比。如果不一致,则请求非法。
特殊错误码
错误代码 | 描述 | HTTP 状态码 | 语义 |
---|---|---|---|
InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误。 |
InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名。 |
IllegalOperation | Illegal domain operate is not permitted. | 403 | 不支持当前操作,如:非直播类域名。 |
InvalidNotifyUrl.Malformed | Specified parameter NotifyUrl is not valid. | 400 | 回调地址不是一个合法的 HTTP 地址。 |
InvalidNotifyUrl.Unsafe | Specified NotifyUrl is not safe. | 400 | 非安全的 NotifyUrl 值。 |