设置云端录制布局
更新时间: 2025/06/11 18:16:33
本文主要介绍如何调用网易云信服务端接口设置云端录制的合流布局模式。通过控制台设置合流布局的步骤,请参考 开通云端录制。
布局模式
云端录制的合流录制模式会进行合流转码,将多路音视频流混合成一路。在合流录制中,您需要设置用户视频画面大小及其在视频画布上的位置,即合流录制布局。
云端录制的合流录制模式支持两类合流录制布局:
录制布局 |
预设模板 |
说明 |
---|---|---|
模板布局 | 仅包含主流时,模板布局支持: |
使用系统预设的模板设置用户主流画面的大小和位置。 若录制订阅名单中的成员开启了视频辅流(例如共享屏幕),该模板布局将失效。 |
存在辅流的模板布局 | 若录制订阅名单中的成员开启了视频辅流(例如共享屏幕),系统会统一使用该模板布局。 | |
自定义布局 | 无 | 您可以灵活设置主流和辅流在画面中的位置,还可以设置画布背景颜色、占位图等。 |
- 支持通过 RESTful API 或 控制台 设置合流布局模式。
- 若您在 网易云信控制台 设置了布局模式,在调用 创建云端录制任务 RESTful API 时,同时也设置了
layoutType
参数,则优先采用 RESTful API 接口中的设置。
使用模板布局
请在调用 创建云端录制任务 RESTful API 时,通过录制布局配置参数 layoutType
选择一种预设的布局模式。出于不同业务场景的需求,云端录制服务提供五种预设的合流录制布局:
模板布局 |
参数设置 |
布局描述 |
---|---|---|
画廊模式 | layoutType = 0 | 多人加入时,用户画面平铺在画布上,并按照具体的人数平分整体画布,每个用户画面加载区域大小一致。 |
主讲人模式 | layoutType = 1 | 设置某用户为主讲人,主讲人在画布上会显示为大视窗,铺满整个画布。其他用户的小视窗画面悬浮于主画面之上,展示方式根据房间总人数而定,不同人数区间展示为不同布局。最多支持共 9 个用户画面。 |
悬浮模式 | layoutType = 3 | 主讲人在画布上会显示为大视窗,铺满整个画布。其他用户按照加入的顺序从画布左下角开始依次水平排列,显示为小视窗,最多 2 行,每行 4 个画面。小视窗会悬浮在大视窗底部。最多支持共 9 个用户画面。 |
垂直模式 | layoutType = 4 | 主讲人在画布左侧会显示为大视窗。其他用户的小视窗画面在右侧垂直排列,最多两列,每列最多 4 个画面。最多支持共 9 个用户画面。 |
存在辅流的模板布局 | layoutType = 0、1、3 或 4 时,若录制订阅名单中的成员开启了视频辅流,您设置的模板布局将失效,系统会统一使用存在辅流的模板布局。 | 辅流的画面内容铺满整个画布,单用户的小视窗画面悬浮在窗口右上角。或者辅流的画面内容在画布上方显示为大视窗,所有用户的小视窗画面在下方依次水平排列。最多支持共 5 个用户画面。 |
若您不希望因辅流的存在改变原先设置的布局模式,建议您使用 自定义布局 灵活设置主流和辅流在画面中的位置,以避免辅流带来的影响。
画廊模式
多人加入时,成员画面平铺在画布上,并按照具体的人数平分整体画布,每个成员画面加载区域大小一致。
画廊模式布局规则如下:
规则 |
说明 |
---|---|
人数限制 | 合流视频画布上最多显示 9 个用户画面。 |
画面显示规则 |
|
布局规则 |
|
画面自适应 | 如果实际视频流的宽高比与视窗的宽高比不一致,视频画面会缩放以适应视窗的大小。 |
录制分辨率 | 可通过 网易云信控制台 在指定应用的 功能配置 里设置为 竖屏 (480x720)或 横屏 (720x480)。![]() |
成员占位顺序 |
|
效果图 展示如下:
1~2 人 | 3~4 人 | 5 人及以上 |
---|---|---|
![]() |
![]() |
![]() |
主讲人模式
设置某成员为主讲人,主讲人的画面为画布中的主画面,显示区域为整个画布。房间中的其余成员画面悬浮于主画面之上,展示方式根据房间总人数而定,不同人数区间展示为不同布局。
规则 | 说明 |
---|---|
人数限制 | 合流视频画布上最多显示 9 个用户画面。 |
画面显示规则 |
|
主讲人设置 |
|
画面自适应 | 如果实际视频流的宽高比与视窗的宽高比不一致,视频画面会缩放以适应视窗的大小。 |
录制分辨率 | 采用主讲人的视频分辨率。 |
成员编号顺序 |
|
效果图 展示如下:
1~2 人 | 3~4 人 | 5 人及以上 |
---|---|---|
![]() |
![]() |
![]() |
悬浮模式
主讲人的画面在屏幕上会显示为大视窗,铺满整个画布。其他用户按照加入的顺序从画布左下角开始依次水平排列,显示为小视窗,最多 2 行,每行 4 个画面。小视窗悬浮在大视窗之上。
- 悬浮模式仅支持通过纯服务端方案进行配置,即仅通过调用创建录制任务接口来设置。
- 如果通过
layoutConfig.hostUid
参数设置了主讲人,则主讲人始终显示为大视窗。但该主讲人必须发布视频流,否则设置无效,即若通过layoutConfig.hostUid
设置某未发布视频流的成员为主讲人,该成员不会显示为大视窗。如果未设置主讲人,则将第一个加入房间的发布视频流的成员视为主讲人。
规则 |
说明 |
---|---|
人数限制 | 合流视频画布上最多显示 9 个用户画面。 |
画面显示规则 |
|
布局规则 |
|
主讲人设置 |
|
画面自适应 | 如果实际视频流的宽高比与视窗的宽高比不一致,视频画面会缩放以适应视窗的大小。 |
录制分辨率 | 采用主讲人的视频分辨率。 |
成员占位顺序 |
|
效果图 展示如下:
1~2 人 | 2~5 人 | 6 人及以上 |
---|---|---|
![]() |
![]() |
![]() |
垂直模式
主讲人的画面在屏幕上会显示为大视窗,铺满整个画布。其他用户按照加入的顺序从画布左下角开始依次水平排列,显示为小视窗,最多 2 行,每行 4 个画面。小视窗悬浮在大视窗之上。
- 垂直模式仅支持通过纯服务端方案进行配置,即仅通过调用创建录制任务接口来设置。
- 如果通过
layoutConfig.hostUid
参数设置了主讲人,则主讲人始终显示为大视窗。但该主讲人必须发布视频流,否则设置无效,即若通过layoutConfig.hostUid
设置某未发布视频流的成员为主讲人,该成员不会显示为大视窗。如果未设置主讲人,则将第一个加入房间的发布视频流的成员视为主讲人。
规则 |
说明 |
---|---|
人数限制 | 合流视频画布上最多显示 9 个用户画面。 |
画面显示规则 |
|
布局规则 |
|
主讲人设置 |
|
画面自适应 | 如果实际视频流的宽高比与视窗的宽高比不一致,视频画面会缩放以适应视窗的大小。 |
录制分辨率 | 采用主讲人的视频分辨率。 |
成员占位顺序 |
|
效果图 展示如下:
1~2 人 | 2~5 人 | 6 人及以上 |
---|---|---|
![]() |
![]() |
![]() |
存在辅流的模板布局
当通话中存在辅流时,已设置的仅包含主流的模板布局不生效,录制的布局模式自动切换为存在辅流的模板布局。辅流场景的布局效果图如下。
- 在用户关闭辅流后,录制布局会自动切换回原先设置的模板布局。
- 教育场景中,若您需要将单人的主流、辅流分别录制,同时生成两个录制文件,请 提交工单 联系网易云信技术支持工程师。
规则 | 说明 |
---|---|
人数限制 | 合流视频画布上最多显示 5 个用户画面。 |
画面显示规则 |
|
布局规则 |
|
主讲人设置 | 按用户布局设置生效。非画廊模式时,主讲人配置生效。 |
画面自适应 | 如果实际视频流的宽高比与视窗的宽高比不一致,视频画面会缩放以适应视窗的大小。 |
录制分辨率 | 采用辅流的视频分辨率。 |
成员编号顺序 | 按照成员加入房间的顺序为其编号。 |
效果图 展示如下:
1 人 | 2~5 人 |
---|---|
![]() |
![]() |
使用自定义布局
使用自定义布局模式,您可以通过参数设定,根据需求灵活设置视频画面的大小和位置。
指定自定义布局
请在调用 创建云端录制任务 接口时,请求体参数设定要求如下:
- 设置录制布局模式参数
layoutConfig.layoutType
为2
,表示启用自定义布局。 - 设置录制布局配置参数
layoutConfig.layout
,设计合流录制的画面布局,包括背景画布(canvas
)、用户画面(users
)、辅流画面(subStreams
)和占位图片(images
)的设置。
布局参数说明
layout
布局参数说明如下:
-
canvas
参数用于设置合流画面的背景画布属性,包括背景画布的高度、宽度和颜色。 -
users
参数用于设置合流画面中每个参与者对应的画面属性。 -
subStreams
参数用于设置合流画面中每个辅流画面的属性。 -
images
参数用于设置合流画面中的占位图片属性,包括占位图片的位置、适应性、图片 url 等。users
、subStreams
和images
三个属性均支持设置zOrder
参数(即图层编号),但在视窗有重叠部分的情况下,三者图层展示的优先顺序为users
>subStreams
>images
。images
支持最多设置 6 张图片。
完整参数结构如下表所示。
参数名称 |
类型 | 是否必选 | 示例 | 说明 |
---|---|---|---|---|
- canvas | JSON | 是 | - | 用于设置混流视频的整体画布属性。 |
height | Integer | 是 | 640 | 整体画布的高度,单位为 px。取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
width | Integer | 是 | 360 | 整体画布的宽度,单位为 px。取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
color |
Integer 或 String |
否 |
#CC00FF |
画面背景颜色,默认为 0,即黑色。支持以下格式的颜色码:
|
- users | JSON 数组 | 是 | - | 用于设置混流视频中每个参与者对应的画面属性。users 和 subStreams 的用户个数总和不超过 16。如果人数超限,可能会造成服务故障。 |
uid | Integer | 否 | 1111 | 为指定 uid 的用户设置主流布局。 |
x | Integer | 是 | 0 | 通过 x 和 y 指定画布坐标中的一个点,该点将作为用户图像的左上角。 x 参数用于设置画布的横轴坐标值。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
y | Integer | 是 | 0 | 通过 x 和 y 指定画布坐标中的一个点,该点将作为用户图像的左上角。 y 参数用于设置画布的纵轴坐标值。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
zOrder |
Integer |
否 |
1 |
自定义布局上用户视频画面的图层编号。取值范围为 0~100,默认为 0。
|
width | Integer | 是 | 360 | 该用户图像在画布中的宽度。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
height | Integer | 是 | 360 | 该用户图像在画布中的高度。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
adaption |
Integer |
否 |
1 |
用于设置占位图片和指定区域的适应属性。可设置为:
|
- subStreams | JSON 数组 | 否 | - | 用于设置混流视频中所有参与者发布的视频辅流对应的画面属性。开启辅流形式屏幕共享之后,辅流画面默认展示为指定布局样式,详细信息请参考 存在辅流的模板布局。您也可以通过此参数调整每个辅流画面在直播画面中的位置。 |
uid | Integer | 否 | 1111 | 为指定 uid 的用户设置辅流布局。 |
x | Integer | 是 | 360 | 通过 x 和 y 指定画布坐标中的一个点,该点将作为辅流视频的左上角。 x 参数用于设置画布的横轴坐标值。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
y | Integer | 是 | 0 | 通过 x 和 y 指定画布坐标中的一个点,该点将作为辅流视频的左上角。 y 参数用于设置画布的纵轴坐标值。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
width | Integer | 是 | 360 | 该辅流视频在画布中的宽度。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
height | Integer | 是 | 640 | 该辅流视频在画布中的高度。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
adaption |
Integer |
否 |
1 |
用于设置占位图片和指定区域的适应属性。可设置为:
|
zOrder |
Integer |
否 |
1 |
自定义布局上辅流视频的图层编号。取值范围为 0~100,默认为 0。
|
- images | JSON 数组 | 否 | - | 用于设置混流视频中占位图片属性。若参数 users 指定的用户未上线,会在其对应的区域展示占位图片。 |
url | String | 是 | www.163.com/test.jpg | 占位图片的 URL。 |
x | Integer | 是 | 360 | 通过 x 和 y 指定画布坐标中的一个点,该点将作为占位图片的左上角。 x 参数用于设置画布的横轴坐标值。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
y | Integer | 是 | 0 | 通过 x 和 y 指定画布坐标中的一个点,该点将作为占位图片的左上角。 y 参数用于设置画布的纵轴坐标值。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
width | Integer | 是 | 360 | 该占位图片在画布中的宽度。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
height | Integer | 是 | 640 | 该占位图片在画布中的高度。 取值范围为 0~1920,若设置为奇数值,会自动向下取偶。 |
adaption |
Integer |
否 |
1 |
用于设置占位图片和指定区域的适应属性。可设置为:
|
zOrder |
Integer |
否 |
1 |
直播视频上辅流视频的图层编号。取值范围为 0~100,默认为 0。
|
设置视窗位置
使用自定义布局时,需要通过 x
、y
、width
和 height
设置元素的位置和区域大小,如下图所示:

自定义布局示例

实现此布局的 示例代码 如下:
JSON{
"layoutConfig":{
"layoutType":2,
"layout":{
"canvas": {
"width": 1280,
"height": 720,
"color": "#CC00FF"
},
"users": [{
"uid": 123,//主播 uid
"x": 920,
"y": 40,
"width": 320,
"height": 240,
"adaption": 0,
"zOrder": 1
}],
"subStreams":[{
"uid": 123,//主播 uid
"x": 40,
"y": 160,
"width": 640,
"height": 480,
"adaption": 0,
"zOrder": 1
}],
"images": [{
"url": "xxxxxx",
"x": 920,
"y": 340,
"width": 320,
"height": 240,
"adaption": 0,
"zOrder": 1
}]
}
}
}
更新录制布局
您可以在录制任务创建后,通过调用 更新录制布局 接口修改录制布局配置。需要注意以下几点:
-
支持修改的场景:
- 仅支持自定义布局模式(
layoutConfig.layoutType
=2)的修改 - 支持两种任务类型:
- 普通录制任务模式:
recordConfig.recordType
取值为0
、1
、2
时,且layoutConfig.layoutType
=2
。 - 模板文件集合模式:
recordConfig.recordType
取值为100
时,且recodConfig.modeList[].layoutType
=2
。(招标采购场景主要采用该模式,有关这种业务场景的更多信息,请参考 招采场景集成最佳实践)。
- 普通录制任务模式:
- 仅支持自定义布局模式(
-
可修改的布局(
layoutConfig.layout
)参数:- 可修改
layoutConfig.layout
中的users
、subStreams
和images
参数。 - 无法修改
layoutConfig.layout.canvas
参数(一旦录制任务启动后不支持修改)。
- 对于
layoutType
不为2
的布局,虽然接口允许修改相关参数,但由于这些参数实际不会被使用,所以修改没有实际作用。 - 修改布局时,请保持原有布局模式(
layoutType
)不变。
- 可修改
接口使用示例
更新录制布局时,您只需要在 更新录制布局 接口请求体中修改需要更新的布局参数,其余参数保持原云端录制任务的设置(可通过 查询云端录制配置 接口查询):
JSON{
// 其余参数保持原云端录制任务的设置
"layoutConfig": {
"layoutType": 2,
"layout": {
"users": [
{
"uid": 123,
"x": 100,
"y": 50,
"width": 320,
"height": 240,
"adaption": 0,
"zOrder": 2
}
],
"subStreams": [
{
"uid": 123,
"x": 50,
"y": 300,
"width": 640,
"height": 480,
"adaption": 0,
"zOrder": 1
}
],
"images": [
{
"url": "https://example.com/image.jpg",
"x": 800,
"y": 50,
"width": 320,
"height": 240,
"adaption": 0,
"zOrder": 1
}
]
}
}
}