创建合流任务

调用CreateMixStream创建合流任务。

使用说明

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

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

QPS限制

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

调试

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

请求参数

名称

类型

是否必选

示例值

描述

Action String CreateMixStream

系统规定参数。取值:CreateMixStream

DomainName String example.com

主播流域名。

重要 目前仅支持华东2(cn-shanghai)和华北2(cn-beijing)两个区域的域名。
LayoutId String MixStreamLayout-1-1

布局ID。取值:

  • MixStreamLayout-1-1
  • MixStreamLayout-2-1
  • MixStreamLayout-2-2
  • MixStreamLayout-2-3
  • MixStreamLayout-3-1
  • MixStreamLayout-3-2
  • MixStreamLayout-4-1
  • USERDEFINED(非上述预设布局,固定取值USERDEFINED

    说明 更多信息请参见合流预设布局参考

InputStreamList String [{"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]}}]

合流输入列表。JSON数组。

参考下方的InputStreamConfig

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

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

参考下方的OutputConfig

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

回调地址。JSON数组。

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

InputStreamConfig

名称

类型

描述

ResourceType

String

资源类型。

live:直播流地址。

url:文件流地址。

ResourceValue

String

资源地址。

如果ResourceType为live,则为直播流地址。直播流地址支持RTMP、FLV和ARTC协议,不支持HLS协议。

如果ResourceType为url,则为文件流地址。

LayoutChildId

String

布局方格对应ID(也代表合流的叠加顺序)。

LayoutConfig

LayoutConfig[]

JSON数组,代表所在位置、填充方式等布局信息。

如果使用预设布局,则此参数可以不填。

如果设置了该值,则忽略LayoutChildId对应的预设布局信息。

LayoutConfig

名称

类型

必选

描述

FillSizeNormalized

JSON浮点数组

必选

表示该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

名称

类型

必选

描述

AppName

String

输出App名。不支持#、?等特殊字符。

StreamName

String

输出流名。不支持#、?等特殊字符。

MixStreamTemplate

String

合流输出规格模板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表示低延迟模板,括号里表示模板的分辨率。

ExpireDuration

Long

可选

任务过期时间。单位:秒。取值范围:1~31536000(1年)。

如果不设置默认7天过期清理任务。

返回数据

名称

类型

示例值

描述

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

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

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

请求ID。

示例

请求示例

http(s)://live.aliyuncs.com/?Action=CreateMixStream
&DomainName=example.com
&InputStreamList=[{"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]}}]
&LayoutId=MixStreamLayout-1-1
&OutputConfig={"AppName":"liveApp****","StreamName":"9a78fb3f5c508be0122746f677a3****","MixStreamTemplate":"lp_hd_v","ExpireDuration":"86400"}
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateMixStreamResponse>
    <MixStreamId>5b2a046e-74d7-385e-253f-8a5b87e4****</MixStreamId>
    <RequestId>0D715397-2E66-4AE1-694h-C546628AD145</RequestId>
</CreateMixStreamResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

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

错误码

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

增加合流事件回调示例

  • 合流创建成功
    {
    "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示例

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