调用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转推。

说明
  • 此参数只对请求参数中的TargetDomainList生效。
  • 使用正则表达式配置AppName参数值时不能使用^或$字符,否则会导致转推失败。
StreamName String liveStream****

推流名称。支持正则表达式配置但有例外。详细信息,请参见下文中的AppName与StreamName参数设置说明。例如:liveStream1,2,3,表示允许liveStream1,liveStream2,liveStream3三个流转推。

说明
  • 此参数只对请求参数中的TargetDomainList生效。
  • 使用正则表达式配置StreamName参数值时不能使用^或$字符,否则会导致转推失败。
TargetDomainList String learn.aliyundoc.com,guide.aliyundoc.com

用户指定的转推目标域名列表。多个域名用英文逗号(,)分隔。请求中必须带有TargetDomainListHttpsDns两个参数中的一个,且二者互斥。

说明
  • 当请求参数中设置了TargetDomainListAppNameStreamName参数才生效。
  • 当请求参数中设置了TargetDomainList,则不能再设置HttpsDns参数。
HttpDns String http://developer.aliyundoc.com

获取转推目标地址的HTTPDNS接口。请求中必须带有TargetDomainListHttpsDns两个参数中的一个,且二者互斥。

说明 若请求参数中设置了HttpsDns,则不能再设置TargetDomainList参数,且AppNameStreamName限制不生效。

直播转推对HTTPDNS接口返回的消息结构有要求,详细信息,请参见下文中的HTTPDNS说明

TransferArgs String yes

推流参数是否透传。取值:

  • yes:推流参数透传。
  • no:推流参数不透传。

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

{
  "SetLiveEdgeTransferResponse" : {
    "RequestId" : "16A96B9A-F203-4EC5-8E43-CB92E68F4CF8"
  }
}

错误码

访问错误中心查看更多错误码。