调用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。取值:
|
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示例
详细示例,请参见合流代码示例。