设置房间混流布局

最近更新时间:2026-04-20 17:34:04

我的收藏

功能说明

App 管理员可以通过该接口设置指定房间的混流布局画面。
注意:
要使用该能力前提是:需要创建房间的时候打开房间的混流能力,即 IsUnlimitedRoomEnabled 设置为 true,对应 SDK 侧 TUILiveKit 视频房 组件创建的房间。
混流涉及的主播必须都在麦上。

接口调用说明

请求 URL 示例

https://xxxxxx/v4/live_engine_http_srv/set_mix_stream?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json

请求参数说明

下表仅列出调用本接口时涉及修改的参数及其说明,更多参数详情请参见 REST API 简介
参数
说明
xxxxxx
SDKAppID 所在国家/地区对应的专属域名:
中国:console.tim.qq.com
新加坡:adminapisgp.im.qcloud.com
硅谷:adminapiusa.im.qcloud.com
雅加达:adminapiidn.im.qcloud.com
v4/live_engine_http_srv/set_mix_stream
请求接口。
sdkappid
创建 Live 应用分配的 SDKAppID。
identifier
必须为 App 管理员账号,更多详情请参见 App 管理员
usersig
App 管理员账号生成的签名,具体操作请参见 生成 UserSig
random
请输入随机的32位无符号整数,取值范围0 - 4294967295。
contenttype
请求格式固定值为 json

最高调用频率

20次/秒。

请求包示例

九宫格模式:
{
"RoomId":"mix1",
"LayoutMode":0, //九宫格模式
"VideoEncode":{
"Width":720,
"Height":1280
}
}
自定义模式:
{
"RoomId":"mix1",
"LayoutMode":1000,
"VideoEncode":{
"Width":720,
"Height":1280
},
"LayoutInfo":{
"LayoutList":[
{
"LocationX":0,
"LocationY":0,
"ImageWidth":360,
"ImageHeight":1280,
"RoomId":"mix1",
"Member_Account":"brennanli",
"StreamType":0,
"ZOrder":1
},
{
"LocationX":360,
"LocationY":0,
"ImageWidth":360,
"ImageHeight":1280,
"RoomId":"mix1",
"Member_Account":"tandy",
"StreamType":0,
"ZOrder":1
},
{ //表示只需要展示音频, 不需要画面
"LocationX":0,
"LocationY":0,
"ImageWidth":0,
"ImageHeight":0,
"RoomId":"mix1",
"Member_Account":"faker",
"StreamType":0,
"ZOrder":1
},
]
}
}
悬浮画面:
{
"RoomId":"mix1",
"LayoutMode":1000,
"VideoEncode":{
"Width":720,
"Height":1280
},
"LayoutInfo":{
"LayoutList":[
{
"LocationX":540,
"LocationY":960,
"ImageWidth":180,
"ImageHeight":320,
"RoomId":"mix1",
"Member_Account":"brennanli",
"StreamType":0,
"ZOrder":1
}
],
"MaxUserLayout":{
"RoomId":"mix1",
"Member_Account":"tandy",
"StreamType":0,
"ZOrder":0
}
}
}
屏幕共享画面:
{
"RoomId":"mix1",
"LayoutMode":1000,
"VideoEncode":{
"Width":720,
"Height":1280
},
"LayoutInfo":{
"LayoutList":[
{
"LocationX":630,
"LocationY":0,
"ImageWidth":90,
"ImageHeight":160,
"RoomId":"mix1",
"Member_Account":"brennanli",
"StreamType":0,
"ZOrder":1

}
],
"MaxUserLayout":{
"RoomId":"mix1",
"Member_Account":"brennanli",
"StreamType":1,
"ZOrder":0
}
}
}

请求包字段说明

字段
类型
属性
说明
RoomId
String
必填
房间 ID,最长48个字节。
LayoutMode
Integer
必填
布局模式,默认为0。
0表示默认的九宫格模式, 单路流走旁路转推,多路流会转码混流下推。
1000表示自定义模式,自定义模式下需要设置 VideoEncode, LayoutInfo 等字段,自定义模式下都会混流转码下推。
VideoEncode
Object
选填
分辨率信息,默认为720P:
自定义模式下有效。
九宫格模式下如果房间只有一个主播,会进行旁路转推,填写该参数无效。
Width
Integer
选填
画面分辨率宽。
Height
Integer
选填
画面分辨率高。
LayoutInfo
Object
选填
混流画面布局信息,只有自定义模式下该字段有效。
LayoutList
Array
选填
混流主播布局信息,只有自定义模式下该字段有效。
MaxUserLayout
Object
选填
屏幕共享,悬浮窗时候的大画面,只有自定义模式下该字段有效。
LayoutList 里的元素字段说明
字段
类型
属性
说明
LocationX
Integer
必填
该主播在画面的 x 位置。
LocationY
Integer
必填
该主播在画面的 y 位置。
ImageWidth
Integer
必填
该主播在画面的宽度。
ImageHeight
Integer
必填
该主播在画面的高度。
Member_Account
String
必填
主播账号 Id。
StreamType
Integer
必填
流类型:
0表示摄像头流。
1表示屏幕分享流。
ZOrder
Integer
必填
主播画面层级:0表示最底层。
RoomId
String
必填
该主播对应的房间 Id。
MaxUserLayout 字段说明
字段
类型
属性
说明
Member_Account
String
必填
主播账号 Id。
StreamType
Integer
必填
流类型:
0表示摄像头流。
1表示屏幕分享流。
ZOrder
Integer
必填
主播画面层级:0表示最底层。
RoomId
String
必填
该主播对应的房间 Id。

应答包体示例

基础形式
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0,
"RequestId": "Id-8c9858f01e954611ae2d4c1b1ed7d583-O-Seq-52720"
}

应答包字段说明

字段
类型
说明
ActionStatus
String
请求处理的结果,OK 表示处理成功,FAIL 表示失败。
ErrorCode
Integer
错误码,0表示成功,非0表示失败。
ErrorInfo
String
错误信息。
RequestId
String
唯一请求 ID,每次请求都会返回,定位问题时需要提供该次请求的 RequestId。

错误码说明

除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。
公共错误码(60000到79999)参见 错误码 文档。
本 API 私有错误码如下:
错误码
含义说明
100001
服务器内部错误,请重试。
100002
请求参数非法,请根据错误描述检查请求是否正确。
100006
该房间类型需要是 Live 房间类型。
100004
房间不存在或者已解散。
100007
付费套餐不满足。
100422
请求短时间过多,被频控,单个 sdkappid 所有混流操作叠加起来20/s。
100424
混流任务不存在,请重试。
100427
该房间混流操作过快,请稍后重试。