混流布局

功能介绍

混流指通过服务器,将同房间或不同房间的多路音视频流混合成一路流(即多个视频画面混合成一个视频画面,或是多路音频合成一路音频),并将混合流推送到CDN或进行云端录制。布局是指设定视频画面的大小、显示位置、叠放关系等。

通过RESTful API开启混流时,可通过 选择预设画面布局自定义画面布局 方式,设置用户视频画面的大小、显示位置、水印、背景和SEI,实现最佳的画面显示效果。

说明:

  • 跨房间混流时,不支持使用预设画面布局。
  • 如需定制其它布局模板,请联系与您对接的技术支持人员。

选择预设画面布局

实现方法

  1. 通过RESTful API 调用 startrecord 启动任务,通过 mixconfig 参数,传入 templateid(预设布局模板)和 output (混流输出参数)的相应字段来选择预设布局,并支持设置画布水印(时间戳、文本或图片)、背景或 SEI 。

  2. (可选)调用 updatemixrecord 并设置 mixconfig 参数,更改画面布局。

功能
实现方法
选择预设布局样式mixconfig 中传入字段 templateid(预设布局模板):1-水平布局、2-垂直布局、3-平铺布局、4-角落布局、5-5人水平布局
设置水印mixconfigoutput 中传入 watermark 可设置画布水印,包括时间戳、文本或图片
设置背景mixconfigoutput 中传入 background 可设置画布背景图片和颜色
设置SEI信息mixconfigoutput 中传入 base64seidata 可添加SEI信息

水平布局

首用户在上方显示大窗画面,其他用户在下方排列显示小窗画面,小窗画面悬浮于大窗画面之上。小窗最多两行,一行最多8个画面,最多支持1个大画面,16个小画面。

  • 对于大画面,如果设置输出画面的宽高比与实际视频流的宽高比不一致,则输出会对实际视频流采用缩放不裁剪以保证画面的完整性。
  • 对于小画面,如果输出画面的宽高比与实际视频流的宽高比不一致,则会对实际视频流采用裁剪以填满小画面。
  • 如果某用户只发送音频,不会占据布局位。

布局效果如下:

img

垂直布局

首用户在左侧显示大窗画面,其他用户在右侧排列显示小窗画面,小窗最多两列,小视窗不会覆盖大视窗。一列最多8个画面,最多支持1个大画面,16个小画面。

  • 对于大画面,如果设置输出画面的宽高比与实际视频流的宽高比不一致,则输出会对实际视频流采用缩放不裁剪以保证画面的完整性。
  • 对于小画面,如果输出画面的宽高比与实际视频流的宽高比不一致,则会对实际视频流采用裁剪以填满小画面。
  • 如果某用户只发送音频,不会占据布局位。

布局效果如下:

img

平铺布局

根据用户数量自动调整每个画面的大小,每个用户的画面大小一致,最多支持16个画面(4×4)。

  • 如果输出画面的宽高比与实际视频流的宽高比不一致,输出画面会对实际视频流采用裁剪以填满画面。
  • 如果某用户只发送音频,不会占据布局位。

布局效果如下:

img

角落布局

根据用户数量自动调整每个画面的大小,每个用户的画面大小一致,最多支持16个画面(4×4)。

  • 如果输出画面的宽高比与实际视频流的宽高比不一致,输出画面会对实际视频流采用裁剪以填满画面。
  • 如果某用户只发送音频,不会占据布局位。

布局效果如下:

img

5人水平布局

首用户在上方显示大窗画面,其他用户在下方排列显示小窗画面,最多支持4个小窗一共5个画面,小窗画面悬浮于大窗画面之上。目前仅支持一个固定布局,画布大小为1280*720,每个小窗大小为300*300,小窗与大窗边框距离16个像素点,小窗边框之间距离16个像素点。

  • 对于大画面,如果设置输出画面的宽高比与实际视频流的宽高比不一致,则输出会对实际视频流采用缩放不裁剪以保证画面的完整性。
  • 对于小画面,如果输出画面的宽高比与实际视频流的宽高比不一致,则会对实际视频流采用裁剪以填满小画面。
  • 如果某用户只发送音频,不会占据布局位。

布局效果如下:

img

自定义画面布局

实现方法

  1. 通过RESTful API 调用 startrecord 启动任务,通过 mixconfig 参数,传入 intput(自定义布局参数) 和 output(混流输出编码参数)自定义用户画面布局,并支持截取视频、设置画布水印(时间戳、文本或图片)、背景或SEI。

  2. (可选)调用 updatemixrecord 并设置 mixconfig 参数,更改画面布局。

功能
实现方法
自定义画面布局mixconfiginput 传入参数 layoutXlayoutYlayoutHlayoutW 可定义单个用户输出画面的显示位置,画面布局坐标请参考 布局坐标体系
裁剪视频mixconfigintput 传入字段 cropXcropYcropHcropW,截取整个用户视频画面的部分区域,进行局部输出,视频裁剪的坐标体系见 视频裁剪坐标体系
设置水印mixconfigoutput中传入 watermark 可设置画布水印,包括时间戳、文本或图片。
设置背景mixconfigoutput中传入 background 可设置画布背景图片和颜色。
设置SEI信息mixconfigoutput中传入 base64seidata 可添加SEI信息。

布局坐标体系

/ Canvas为画布,Video是单个用户输出画面

 |                   videowidth                  |
 |-----------------------------------------------|---
 | (0,0)                                         |
 |                                               |
 |                     (layoutX, layoutY)        |
 |                          |----layoutW-----|   |
 |                          |                |   |  videoheight
 |                  layoutH |                |   |
 |                          |    Video       |   |
 |  Canvas                  |                |   |
 |                          |----------------|   |
 |-----------------------------------------------|---

视频裁剪坐标体系

/ original为单个用户原视频画面,crop为截取的用户视频画面
 |---------------------------------------------|---
 | (0,0)                                       |
 |                                             |
 |                    (cropX,cropY)            |
 |                          |------cropW-----| |
 |                          |                | |
 |                    cropH |                | |
 |                          |     crop       | |
 |  original                |                | |
 |                          |----------------| |
 |---------------------------------------------|---

文档是否有解决您的问题?

有帮助 没帮助
提交成功,非常感谢您的反馈!

反馈

TOP