SetLiveEdgeTransfer - 设置直播转推配置

调用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:SetLiveEdgeTransferupdate
*全部资源
*

请求参数

名称类型必填描述示例值
DomainNamestring

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

demo.aliyundoc.com
AppNamestring

直播流所属应用名称。支持正则表达式配置但有例外。详细信息,请参见下文中的AppName 与 StreamName 参数设置说明。例如:liveApp****[1,2,3],表示允许 liveApp1,liveApp2,liveApp****3 三个 App 转推。

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

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

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

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

    说明
  • 当请求参数中设置了TargetDomainListAppNameStreamName参数才生效。
  • 当请求参数中设置了TargetDomainList,则不能再设置HttpsDns参数。
  • learn.aliyundoc.com,guide.aliyundoc.com
    HttpDnsstring

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

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

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

    http://developer.aliyundoc.com
    TransferArgsstring

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

    • yes:推流参数透传。
    • no(默认值):推流参数不透传。
    yes

    AppName 与 StreamName 参数设置说明

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

    HTTPDNS 说明

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

    请求示例如下: http://developer.aliyundoc.com/?host={}&app={}&name={}{<_ali_user_args>}
    说明:在实际请求 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****"
            }
        ]
    }
    
    参数描述示例
    nameCDN 名称,可自定义但不能重复。cdnA****
    upstream_url要转推的推流地址。rtmp://developer.aliyundoc.com/live/testedge****
    说明 转推域名从返回的 JSON 结果里面获取。如果返回多个转推域名,表示需要将原始流推到多路。
    • 返回数据结构不符合要求将导致转推失败。

    返回参数

    名称类型描述示例值
    object
    RequestIdstring

    请求 ID。

    16A96B9A-F203-4EC5-8E43-CB92E68F4CF8

    示例

    正常返回示例

    JSON格式

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

    错误码

    HTTP status code错误码错误信息描述
    400InvalidParamParameter invalid.输入参数不合法
    500InternalErrorThe request processing has failed due to backend service exception.-

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