CreateMixStream - 创建合流任务

创建合流任务。

接口说明

调用本接口创建合流任务,目前本接口支持的布局类型为预设布局和自定义布局。

如果您在使用合流服务过程有任何问题或建议,欢迎通过钉钉搜索群号 34935990 加入合流服务开发者群。

QPS 限制

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

调试

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

授权信息

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

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
live:CreateMixStreamcreate
*Domain
acs:live:*:{#accountId}:domain/{#DomainName}

请求参数

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

主播流域名。

注意 目前仅支持华东 2(cn-shanghai)和华北 2(cn-beijing)两个区域的域名。

example.com
LayoutIdstring

布局 ID。取值:

  • MixStreamLayout-1-1
  • MixStreamLayout-2-1
  • MixStreamLayout-2-2
  • MixStreamLayout-2-3
  • MixStreamLayout-3-1
  • ** MixStreamLayout-3-2**
  • MixStreamLayout-4-1
  • USERDEFINED(非上述预设布局,固定取值 USERDEFINED
说明 更多信息请参见合流预设布局参考
MixStreamLayout-1-1
InputStreamListstring

合流输入列表。JSON 数组。

参考下方的 InputStreamConfig

[{"LayoutChildId":1,"ResourceType":"live","ResourceValue":"rtmp://example.net/live/f2139ec2b8d6a191068cd****ea9064d?auth_key=1600947017-0-0-0b5645fe35d21a65ab92b394bd4d****","LayoutConfig":{"FillMode":"fit","PositionRefer":"topLeft","FillPositionNormalized":[0,0],"FillSizeNormalized":[1,1]}}]
OutputConfigstring

合流输出配置。格式为 JSON 字符串。

参考下方的 OutputConfig

{"AppName":"liveApp****","StreamName":"9a78fb3f5c508be0122746f677a3****","MixStreamTemplate":"lp_hd_v","ExpireDuration":"86400"}
CallbackConfigstring

回调地址。JSON 数组。 当事件产生时,直播服务端会向该地址发起 HTTP POST 请求,具体内容将通过 HTTP Body 送达。

{"CallbackUrl":"http://aliyundoc.com"}

InputStreamConfig

名称类型描述
ResourceTypeString资源类型。
live:直播流地址。
url:文件流地址。
ResourceValueString资源地址。
如果 ResourceType 为 live,则为直播流地址。直播流地址支持 RTMP、FLV 和 ARTC 协议,不支持 HLS 协议。
如果 ResourceType 为 url,则为文件流地址。
LayoutChildIdString布局方格对应 ID(也代表合流的叠加顺序)。
LayoutConfigLayoutConfig[]JSON 数组,代表所在位置、填充方式等布局信息。
如果使用预设布局,则此参数可以不填。
如果设置了该值,则忽略 LayoutChildId 对应的预设布局信息。

LayoutConfig

名称类型必选描述
FillSizeNormalizedJSON 浮点数组必选表示该 Layer 元素需要填充的尺寸大小。
[w,h]:w、h 取值范围[0-1]。其中宽高都是进行了归一化计算。
例如:[0.2,0.3]代表水平占比 20%,垂直占比 30%。
FillPositionNormalized浮点数数组必选表示该 Layer 元素填充区位置归一化值。
[x,y]:x、y 的取值范围[0-1]。
例如:[0.1,0.1]代表左上角水平偏移 10%, 垂直偏移 10%。
PositionRefer字符串可选设置元素的 position 参考坐标值。
建议设置 topLeft,代表左上角。
FillMode字符串可选设置元素填充方式。
none:不填充。
fit:缩放填充保证最长的边达到边界,而最短的边可能需要加黑边。
fill:先按照宽和高的最大比例值进行等比缩放,然后进行 crop,保证全部填充。
建议设置为 fit。

OutputConfig

名称类型必选描述
AppNameString输出 App 名。不支持#、?等特殊字符。
StreamNameString输出流名。不支持#、?等特殊字符。
MixStreamTemplateString合流输出规格模板 ID (在传参时仅传模板 ID,例如 lp_ld)。
支持:
lp_ld(分辨率:640x360),
lp_sd(分辨率:854x480),
lp_hd(分辨率:1280x720),
lp_ud(分辨率:1920x1080),
lp_ld_v(分辨率:640x360),
lp_sd_v(分辨率:854x480),
lp_hd_v(分辨率:1280x720),
lp_ud_v(分辨率:1920x1080) ,
lp_ld_v_optm(分辨率:640x360),
lp_sd_v_optm(分辨率:854x480),
lp_hd_v_optm(分辨率:1280x720),
lp_ud_v_optm(分辨率:1920x1080)。
_v 表示竖屏模板,_optm 表示低延迟模板,括号里表示模板的分辨率。
ExpireDurationLong可选任务过期时间。单位:秒。取值范围:1~31536000(1 年)。
如果不设置默认 7 天过期清理任务。

返回参数

名称类型描述示例值
object
MixStreamIdstring

合流任务 ID。可作为查询合流任务列表和删除合流任务的请求参数。

5b2a046e-74d7-385e-253f-8a5b87e4****
RequestIdstring

请求 ID。

0D715397-2E66-4AE1-694h-C546628AD145

示例

正常返回示例

JSON格式

{
  "MixStreamId": "5b2a046e-74d7-385e-253f-8a5b87e4****",
  "RequestId": "0D715397-2E66-4AE1-694h-C546628AD145"
}

错误码

HTTP status code错误码错误信息
400InvalidUserId.Malformed%s
400InvalidParameter.Malformed%s
400MissingParameter%s
401IllegalOperation%s
403MixStreamAlreadyExist%s
403MixStreamNotExist%s
403UserQuotaExceed%s
404InvalidDomainName.NotFound%s
500InternalError%s

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

变更历史

变更时间变更内容概要操作
暂无变更历史

增加合流事件回调示例

  • 合流创建成功
{
"EventMessage":
    {
        "StreamName":"liveStream****",//合流输出流名
        "Message":"",
        "DomainName":"example.com",
        "MixstreamId":"5b2a046e-74d7-385e-253f-8a5b87e4****",//合流任务 ID
        "Code":"Success",
        "AppName":"liveApp****"//合流输出 App 名
    },
"EventType":"MixstreamStartCallback",
"MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****",
"CasterId":""}
  • 合流创建失败
{"EventMessage":
    {
    "StreamName":"liveStream****",
    "Message":"MixStreamAlreadyExist",
    "DomainName":"example.com",
    "Code":"Error",
    "AppName":"liveApp****"
    },
"EventType":"MixstreamStartCallback",
"MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****",
"CasterId":""
}

SDK 示例

详细示例,请参见合流代码示例