调用SetLiveEdgeTransfer设置直播边缘转推配置。
使用说明
调用SetLiveEdgeTransfer进行的直播边缘转推配置仅对配置完成后开始的推流生效。以下为部分典型场景示例:
场景 |
分析 |
结果 |
1. 用户在调用SetLiveEdgeTransfer之前已经开始推流。 |
此时直播边缘转推流配置不存在。 |
该推流不受SetLiveEdgeTransfer配置的影响,即直播边缘转推流不会启动。 |
2. 用户中断调用SetLiveEdgeTransfer之前已经开始的推流,再重新推流。 |
此时直播边缘转推流配置已经存在。 |
重新开始的推流会按SetLiveEdgeTransfer的配置启动直播转推流。 |
3. 用户在调用SetLiveEdgeTransfer之后开始推流。 |
此时直播边缘转推流配置已经存在。 |
此次推流会按SetLiveEdgeTransfer的配置启动直播转推流。 |
QPS限制
本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
Action | String | 是 | SetLiveEdgeTransfer | 系统规定参数。取值:SetLiveEdgeTransfer。 |
DomainName | String | 是 | demo.aliyundoc.com | 推流域名。直播转推流以推流的DomainName为粒度设置。一个域名只能有一个直播转推配置。 |
AppName | String | 否 | liveApp**** | 直播流所属应用名称。支持正则表达式配置但有例外。详细信息,请参见下文中的AppName与StreamName参数设置说明。例如:liveApp1,2,3,表示允许liveApp1,liveApp2,liveApp3三个App转推。 说明
|
StreamName | String | 否 | liveStream**** | 推流名称。支持正则表达式配置但有例外。详细信息,请参见下文中的AppName与StreamName参数设置说明。例如:liveStream1,2,3,表示允许liveStream1,liveStream2,liveStream3三个流转推。 说明
|
TargetDomainList | String | 否 | learn.aliyundoc.com,guide.aliyundoc.com | 用户指定的转推目标域名列表。多个域名用英文逗号(,)分隔。请求中必须带有 说明
|
HttpDns | String | 否 | http://developer.aliyundoc.com | 获取转推目标地址的HTTPDNS接口。请求中必须带有 说明 若请求参数中设置了 HttpsDns ,则不能再设置TargetDomainList 参数,且AppName 和StreamName 限制不生效。直播转推对HTTPDNS接口返回的消息结构有要求,详细信息,请参见下文中的HTTPDNS说明。 |
TransferArgs | String | 否 | yes | 推流参数是否透传。取值:
|
AppName与StreamName参数设置说明
AppName与StreamName均不支持^
、$
匹配。二者之中任一取值出现^
或$
均会导致转推失败。
HTTPDNS说明
如果SetLiveEdgeTransfer的请求参数中设置了HttpDns
,直播转推时将访问通过HttpDns
设置的HTTPDNS接口来获取转推目标地址。
请求示例如下:
http://developer.aliyundoc.com/?host={<host>}&app={<app>}&name={<name>}{<_ali_user_args>}
说明:在实际请求HTTPDNS接口时会把以下参数按推流URL中的信息进行替换:
- {<host>}:推流域名。
- {<app>}:直播流所属应用名称。
- {<name>}:流名。
- {<_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 | String | 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8 | 请求ID。 |
示例
请求示例
http(s)://live.aliyuncs.com/?Action=SetLiveEdgeTransfer
&DomainName=demo.aliyundoc.com
&<公共请求参数>
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<SetLiveEdgeTransferResponse>
<RequestId>16A96B9A-F203-4EC5-8E43-CB92E68F4CF8</RequestId>
</SetLiveEdgeTransferResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "16A96B9A-F203-4EC5-8E43-CB92E68F4CF8"
}
错误码
访问错误中心查看更多错误码。