AddLiveStreamMerge - 添加主备合流

调用AddLiveStreamMerge添加主备合流配置。

接口说明

本接口的单用户 QPS 限制为 100 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

live:AddLiveStreamMerge

create

*Domain

acs:cdn:*:{#accountId}:domain/{#DomainName}

请求参数

名称

类型

必填

描述

示例值

RegionId

string

地域 ID。

cn-shanghai

DomainName

string

播流域名。

example.com

AppName

string

合流输出 App 名称。AppName 名称与推流地址中的 AppName 名称相对应,模板才能生效。不可以填*。

app

StreamName

string

合流输出 Stream 名称。StreamName 名称与推流地址中的 StreamName 名称相对应,模板才能生效。不可以填*。

StreamName

InAppName1

string

合流输入主流应用名称,输入的 AppName 必须与主流推流地址中的 AppName 保持一致,方可生效。

app1

InStreamName1

string

合流输入主流直播流名称,输入的 AppName 必须与主流推流地址中的 AppName 保持一致,方可生效。

InStream1

InAppName2

string

合流输入备流应用名称,输入的 AppName 必须与备流推流地址中的 AppName 保持一致,方可生效。

app2

InStreamName2

string

合流输入备流直播流名称,输入的 AppName 必须与备流推流地址中的 AppName 保持一致,方可生效。

stream2

StartTime

string

合流开始时间。

日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。

2020-05-29T00:00:00Z

EndTime

string

合流结束时间。

日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。

说明

开始时间与结束时间最大相差 7 天。

2020-05-29T01:00:00Z

Protocol

string

直播流协议,取值:

  • rtmp(默认值)

  • rtc

rtmp

LiveMerger

string

是否使用 liveswitch 引擎

  • on 使用 liveswitch 新引擎

  • off 默认值,使用旧引擎(rtmpr 等)

off

MergeParameters

string

切流相关的配置参数

  1. 明确发生断流时(eof 或 net err),立刻触发主备切换;

  2. 最近 5 秒内卡顿率超过 60%,立刻触发主备切换;

  3. 拉流超时,持续 2 秒收不到帧数据,触发主备切换;

  4. 未断流、未发生卡顿,但是最近 ali_max_no_frame_timeout 时间内的平均帧率 小于 ali_low_frame_rate_threshold,立刻触发主备切换。如果用户设置了 ali_max_no_frame_timeout 参数,则 3 的超时时间会同步更新成 ali_max_no_frame_timeout。

  5. 开启 block_all_jitter 则 2、3、4 不生效。

  • 取值范围: 10 > timeout > 2 200 > threshold > 1 block 的值为 0 或 1

ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0

说明

AppName、InAppName1、InAppName2 三个配置项中不可与其它两个中任意一个重复;StreamName、InStreamName1、InStreamName2 三个配置项中不可与其它两个中任意一个重复。

返回参数

名称

类型

描述

示例值

object

RequestId

string

请求 ID。

16A96B9A-F203-4EC5-8E43-CB92E68F****

Message

string

  • 附加信息,典型应用场景是对失败调用进行简述,方便调用方定位问题

  • 取值:OK、config invalid, degrade to no livemerger。

OK

config invalid, degrade to no livemerger 表示 liveswitch 新引擎的配置不完整,自动降级为旧引擎

示例

正常返回示例

JSON格式

{
  "RequestId": "16A96B9A-F203-4EC5-8E43-CB92E68F****",
  "Message": "OK"
}

错误码

HTTP status code

错误码

错误信息

描述

400 InvalidStartTime.Malformed Specified parameter StartTime is not valid.
400 InvalidEndTime.Malformed Specified parameter EndTime is not valid.
400 InvalidStartTime.ValueNotSupported The specified value of parameter StartTime is not supported. 传入的StartTime参数不支持。
400 InvalidParam Parameter invalid. 输入参数不合法
400 QuotaExceeded.Merge Exceed max merge count limit
400 ConfigAlreadyExists Config has already exist.
400 Duration.Exceed Duration between StartTime and EndTime is too long.
400 InvalidParam.CodeIllegalDuration %s. 开始时间应该小于结束时间。
500 InternalError The request processing has failed due to backend service exception.

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

变更历史

更多信息,参考变更详情