设置垂直布局

更新时间不可用

了解旁路推流中设置垂直布局相关内容的适用场景、配置步骤、实现要点和注意事项。

设置垂直布局

本文介绍如何设置垂直布局,并介绍垂直布局下用户视频画面的布局效果。

垂直布局是转码推流时用户视频画面布局的一种样式。相比自定义布局,垂直布局需要你设置的字段较少。设置垂直布局时,你需要调用 Create 方法并设置 canvas、layoutType(1)、vertical 字段。

如下示例展示如何将 show68 频道内用户的画面按垂直布局合图后推送到 CDN:

JSON
{
  "converter": {
    "name": "show68_vertical",
    "transcodeOptions": {
      "rtcChannel": "show68",
      "audioOptions": {
      },
      "videoOptions": {
        "canvas": {
          "width": 360,
          "height": 640,
          "color": 0
        },
        "codec": "H.264",
        "codecProfile": "high",
        "frameRate": 15,
        "gop": 30,
        "bitrate": 400,
        "layoutType": 1,
        "vertical": {
          "maxResolutionUid": 201,
          "fillMode": "fill",
          "refreshIntervalSec": 4
        },
        "defaultPlaceholderImageUrl": "http://example/host_placeholder.jpg",
        "seiOptions": {
          "source": {
            "metadata": true,
            "datastream": true,
            "customized": {
              "payload": "example"
            }
          },
          "sink": {
            "type": 100
          }
        }
      }
    },
    "rtmpUrl": "rtmp://example/live/show68",
    "idleTimeout": 300
  }
}

视窗画面说明

垂直布局的画面类型分为大视窗、小视窗和空视窗。空视窗指没有用户视频画面的视窗,具体说明如下:

大视窗画面

  • 指定 UID

    你可以在开始推流时通过 maxResolutionUid 参数指定一个 UID 作为大视窗画面。如果该用户停止发流或退出频道,画面先显示为该用户视频最后一帧,布局刷新(默认每三秒刷新一次)后显示为画布背景色。

  • 未指定 UID

    布局刷新时(默认每三秒刷新一次)音量最大的用户显示为大视窗画面。

小视窗画面

小视窗画面按照频道内其他用户加入频道的时间先后顺序显示。如果小视窗用户 1 退出频道,小视窗用户 2 会占据小视窗用户 1 的视窗,依次替补。

空视窗画面

当布局位上的用户仅发送音频流,或停止发布视频流,或人数不足导致存在空视窗(无用户视频画面),该布局位画面显示如下:

  • 设置了 defaultPlaceholderImageUrl 字段,则显示默认背景图。
  • 未设置 defaultPlaceholderImageUrl 字段,则先显示为该用户视频最后一帧,布局刷新后显示为画布背景色。

画面布局效果

不同人数范围的实际布局效果如下图所示:

若未设置 maxResolutionUid,1 人的布局样式是铺满全屏。若设置了 maxResolutionUid,但该用户还未加入频道,其他用户加入频道时按照 1-5 人的布局展示在右侧。

布局效果如图:

你可以指定用户作为大视窗 1,频道内其他用户按照加入频道的时间顺序显示为视窗 2-5。右侧小视窗宽度占总宽度的 1/5,高度占总高度的 1/4。

布局效果如图:

你可以指定用户作为大视窗 1,频道内其他用户按照加入频道的时间顺序显示为视窗 2-7。右侧小视窗宽度占总宽度的 1/7,高度占总高度的 1/6。

布局效果如图:

你可以指定用户作为大视窗 1,频道内其他用户按照加入频道的时间顺序显示为视窗 2-17。右侧小视窗宽度占总宽度的 1/10,高度占总高度的 1/8。

布局效果如图:

你可以指定用户作为大视窗 1,频道内其他用户按照加入频道的时间顺序显示为视窗 2-33。右侧小视窗宽度占总宽度的 1/10,高度占总高度的 1/8。

布局效果如图:

你可以指定用户作为大视窗 1,频道内其他用户按照加入频道的时间顺序显示为视窗 2-49。右侧小视窗宽度占总宽度的 1/14,高度占总高度的 1/12。

布局效果如图:

API 参考

你可以参考 Create 方法了解字段详情。