调用SetLiveEdgeTransfer设置直播转推配置。
接口说明
调用 SetLiveEdgeTransfer 进行的直播边缘转推配置仅对配置完成后开始的推流生效。以下为部分典型场景示例:
场景 | 分析 | 结果 |
---|---|---|
1. 用户在调用 SetLiveEdgeTransfer 之前已经开始推流。 | 此时直播边缘转推流配置不存在。 | 该推流不受 SetLiveEdgeTransfer 配置的影响,即直播边缘转推流不会启动。 |
2. 用户中断调用 SetLiveEdgeTransfer 之前已经开始的推流,再重新推流。 | 此时直播边缘转推流配置已经存在。 | 重新开始的推流会按 SetLiveEdgeTransfer 的配置启动直播转推流。 |
3. 用户在调用 SetLiveEdgeTransfer 之后开始推流。 | 此时直播边缘转推流配置已经存在。 | 此次推流会按 SetLiveEdgeTransfer 的配置启动直播转推流。 |
QPS 限制
本接口的单用户 QPS 限制为 100 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
live:SetLiveEdgeTransfer | update | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
DomainName | string | 是 | 推流域名。直播转推流以推流的 DomainName 为粒度设置。一个域名只能有一个直播转推配置。 | demo.aliyundoc.com |
AppName | string | 否 | 直播流所属应用名称。支持正则表达式配置但有例外。详细信息,请参见下文中的AppName 与 StreamName 参数设置说明。例如:liveApp****[1,2,3],表示允许 liveApp1,liveApp2,liveApp****3 三个 App 转推。 说明
AppName 参数值时不能使用^或$字符,否则会导致转推失败。 | liveApp**** |
StreamName | string | 否 | 推流名称。支持正则表达式配置但有例外。详细信息,请参见下文中的AppName 与 StreamName 参数设置说明。例如:liveStream****[1,2,3],表示允许 liveStream1,liveStream2,liveStream****3 三个流转推。 说明
StreamName 参数值时不能使用^或$字符,否则会导致转推失败。 | liveStream**** |
TargetDomainList | string | 否 | 用户指定的转推目标域名列表。多个域名用英文逗号(,)分隔。请求中必须带有 说明
TargetDomainList ,AppName 和StreamName 参数才生效。TargetDomainList ,则不能再设置HttpsDns 参数。 | learn.aliyundoc.com,guide.aliyundoc.com |
HttpDns | string | 否 | 获取转推目标地址的 HTTPDNS 接口。请求中必须带有 说明
若请求参数中设置了 HttpsDns ,则不能再设置TargetDomainList 参数,且AppName 和StreamName 限制不生效。
直播转推对 HTTPDNS 接口返回的消息结构有要求,详细信息,请参见下文中的HTTPDNS 说明。 | http://developer.aliyundoc.com |
TransferArgs | string | 否 | 推流参数是否透传。取值:
| yes |
AppName 与 StreamName 参数设置说明
AppName 与 StreamName 均不支持^
、$
匹配。二者之中任一取值出现^
或$
均会导致转推失败。
HTTPDNS 说明
如果 SetLiveEdgeTransfer 的请求参数中设置了HttpDns
,直播转推时将访问通过HttpDns
设置的 HTTPDNS 接口来获取转推目标地址。
请求示例如下:
http://developer.aliyundoc.com/?host={
说明:在实际请求 HTTPDNS 接口时会把以下参数按推流 URL 中的信息进行替换:
- {
}:推流域名。 - {
}:直播流所属应用名称。 - {
}:流名。 - {<_ali_user_args>}:用户推流带的参数。
直播转推对接口返回码和返回数据的要求如下:
- 返回码为 403 表示访问失败,不需要转推。
- 返回码为 200 表示访问成功,返回结果为 JSON 格式。结构和参数示例如下:
{
"cdn_types": [
{
"name": "cdnA****",
"upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"
},
{
"name": "cdnB****",
"upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"
}
]
}
参数 | 描述 | 示例 |
---|---|---|
name | CDN 名称,可自定义但不能重复。 | cdnA**** |
upstream_url | 要转推的推流地址。 | rtmp://developer.aliyundoc.com/live/testedge**** |
- 返回数据结构不符合要求将导致转推失败。
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "16A96B9A-F203-4EC5-8E43-CB92E68F4CF8"
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | InvalidParam | Parameter invalid. | 输入参数不合法 |
500 | InternalError | The request processing has failed due to backend service exception. | - |
访问错误中心查看更多错误码。