調用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****"http://合流輸出App名 }, "EventType":"MixstreamStartCallback", "MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****", "CasterId":""}
- 合流創建失敗
{"EventMessage": { "StreamName":"liveStream****", "Message":"MixStreamAlreadyExist", "DomainName":"example.com", "Code":"Error", "AppName":"liveApp****" }, "EventType":"MixstreamStartCallback", "MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****", "CasterId":"" }
SDK示例
詳細示例,請參見合流代碼示例。