混流指通过服务器,将同房间或不同房间的多路音视频流混合成一路流(即多个视频画面混合成一个视频画面,或是多路音频合成一路音频),并将混合流推送到CDN,观众通过CDN进行订阅观看。布局是指设定视频画面的大小、显示位置、叠放关系等。
通过RESTful API开启混流时,可通过 选择预设画面布局 或 自定义画面布局 方式,设置用户视频画面的大小、显示位置、水印、背景和SEI,实现最佳的画面显示效果。
选择预设画面布局 :默认提供 4 种预设画面布局模板,任选一种来设定用户视频画面的大小和显示位置,预设布局方式包括 水平布局、垂直布局、平铺布局 和 角落布局。
自定义画面布局:按照实际需求,自定义用户视频画面的大小和显示位置,自由组合画面布局。
说明:
通过RESTful API 调用 startrtmp
开启混流,通过 mixconfig
参数,传入 templateid
(预设布局模板)和 output
(混流输出编码参数)的相应字段来选择预设布局,并支持设置画布水印(时间戳、文本或图片)、背景或SEI。
功能 | 实现方法 |
---|---|
选择预设布局样式 | 在 mixconfig 中传入字段 templateid (预设布局模板):1-水平布局、2-垂直布局、3-平铺布局、4-角落布局 |
设置水印 | 在 mixconfig 的 output 中传入 watermark 可设置画布水印,包括时间戳、文本或图片 |
设置背景 | 在 mixconfig 的 output 中传入 background 可设置画布背景图片和颜色 |
设置SEI信息 | 在 mixconfig 的 output 中传入 base64seidata 可添加SEI信息 |
更改布局 | 再次调用 startrtmp 并设置 mixconfig 参数,更改布局 |
首用户在上方显示大窗画面,其他用户在下方排列显示小窗画面,小窗画面悬浮于大窗画面之上。小窗最多两行,一行最多8个画面,最多支持1个大画面,16个小画面。
布局效果如下:
首用户在左侧显示大窗画面,其他用户在右侧排列显示小窗画面,小窗最多两列,小视窗不会覆盖大视窗。一列最多8个画面,最多支持1个大画面,16个小画面。
布局效果如下:
根据用户数量自动调整每个画面的大小,每个用户的画面大小一致,最多支持16个画面(4×4)。
布局效果如下:
首用户铺满大窗,每个角落悬浮一个小窗,最多支持4个小窗一共5个画面。目前仅支持一个固定布局,画布大小为1280*720,每个小窗大小为300*300,小窗与大窗边框距离10个像素点。效果如下:
调用 startrtmp
开启混流,通过 mixconfig
参数,传入 intput
(自定义布局参数) 和 output
(混流输出编码参数)自定义用户画面布局,并支持截取视频、设置画布水印(时间戳、文本或图片)、背景或SEI。
功能 | 实现方法 |
---|---|
自定义画面布局 | 在 mixconfig 的 input 传入参数 layoutX 、layoutY 、layoutH 和 lyoutW 可定义单个用户输出画面的显示位置,画面布局坐标请参考 布局坐标体系 |
裁剪视频 | 在 mixconfig 的 intput 传入字段 cropX 、cropY 、cropH 、cropW ,截取整个用户视频画面的部分区域,进行局部输出,视频裁剪的坐标体系见 视频裁剪坐标体系。 |
设置水印 | 在 mixconfig 的 output 中传入 watermark 可设置画布水印,包括时间戳、文本或图片。 |
设置背景 | 在 mixconfig 的 output 中传入 background 可设置画布背景图片和颜色。 |
设置SEI信息 | 在 mixconfig 的 output 中传入 base64seidata 可添加SEI信息。 |
更改布局 | 再次调用 startrtmp 并设置参数 intput 和 output ,更改画面布局。 |
/ Canvas为画布,Video是单个用户输出画面
| videowidth |
|-----------------------------------------------|---
| (0,0) |
| |
| (layoutX, layoutY) |
| |----layoutW-----| |
| | | | videoheight
| layoutH | | |
| | Video | |
| Canvas | | |
| |----------------| |
|-----------------------------------------------|---
/ original为单个用户原视频画面,crop为截取的用户视频画面
|---------------------------------------------|---
| (0,0) |
| |
| (cropX,cropY) |
| |------cropW-----| |
| | | |
| cropH | | |
| | crop | |
| original | | |
| |----------------| |
|---------------------------------------------|---