调用SetLiveEdgeTransfer设置直播转推配置。

调用SetLiveEdgeTransfer进行的直播转推配置仅对配置完成后开始的推流生效。以下为部分典型场景示例:

场景

分析

结果

1. 用户在调用SetLiveEdgeTransfer之前已经开始推流。

此时直播转推流配置不存在。

该推流不受SetLiveEdgeTransfer配置的影响,即直播转推流不会启动。

2. 用户中断调用SetLiveEdgeTransfer之前已经开始的推流,再重新推流。

此时直播转推流配置已经存在。

重新开始的推流会按SetLiveEdgeTransfer的配置启动直播转推流。

3. 用户在调用SetLiveEdgeTransfer之后开始推流。

此时直播转推流配置已经存在。

此次推流会按SetLiveEdgeTransfer的配置启动直播转推流。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String SetLiveEdgeTransfer

系统规定参数。取值:SetLiveEdgeTransfer

DomainName String push.****.example.com

推流域名。直播转推流以推流的DomainName为粒度设置。一个域名只能有一个直播转推配置。

RegionId String cn-shanghai

地域ID。

AppName String testApp

直播流所属应用名称,只对请求参数中的TargetDomainList生效。支持正则表达式配置但有例外(请参考下文说明),例如:test[1,2,3],表示允许test1,test2,test3三个App转推。

说明 使用正则表达式配置AppName参数值时不能使用^或$字符,否则会导致转推失败。
StreamName String testStream

推流名称,只对请求参数中的TargetDomainList生效。支持正则表达式配置但有例外(请参考下文说明),例如:streamtest[1,2,3],表示允许streamtest1,streamtest2,streamtest3三个流转推。

说明 使用正则表达式配置StreamName参数值时不能使用^或$字符,否则会导致转推失败。
TargetDomainList String push.****.example.com,push.****.example.net

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

说明 若请求中设置了TargetDomainList,则不能再设置HttpsDns
HttpDns String http://example.httpdns.com

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

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

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

TransferArgs String yes

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

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

AppName与StreamName参数设置说明

AppName与StreamName均不支持^$匹配。二者之中任一取值出现^$均会导致转推失败。

HTTPDNS说明

如果SetLiveEdgeTransfer的请求参数中设置了HttpDns,直播转推时将访问通过HttpDns设置的HTTPDNS接口来获取转推目标地址。

请求示例如下:

http://example.httpdns.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://cdna.example.com/live/testedge"
        },
        {
            "name": "cdnB",
            "upstream_url": "rtmp://cdnb.example.com/live/testedge"
        }
    ]
}

参数

描述

示例

name

CDN名称,可自定义但不能重复。

cdnA

upstream_url

要转推的推流地址。

rtmp://cdna.example.com/live/testedge

说明
  • 转推域名从返回的JSON结果里面获取。如果返回多个转推域名,表示需要将原始流推到多路。
  • 返回数据结构不符合要求将导致转推失败。

返回数据

名称 类型 示例值 描述
RequestId String 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8

请求ID。

示例

请求示例

https://live.aliyuncs.com/?Action=SetLiveEdgeTransfer
&DomainName=push.****.example.com
&TargetDomainList=push.****.example.com,push.****.example.net
&TransferArgs=yes
&<公共请求参数>

正常返回示例

XML格式

<SetLiveEdgeTransferResponse>
  <RequestId>16A96B9A-F203-4EC5-8E43-CB92E68F4CF8</RequestId>
</SetLiveEdgeTransferResponse>

JSON格式

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

错误码

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