数据结构

更新时间: 2023/07/13 02:47:56

members

音视频房间中的在线用户信息列表。

被以下接口引用:查看房间内成员信息

名称 类型 示例 描述
uid Integer 193992653091841 房间中在线成员的用户 ID。
starttime int64 1513145926 该成员加入房间的时间。UTC 时间戳格式。
userRole Integer 1 房间成员角色。0 表示主播角色,1 表示观众角色。

layout

旁路推流画面布局设置。配置示例请参考旁路推流画面布局

被以下接口引用:

参数 类型 是否必选 描述
canvas layout.canvas 必选 用于设置混流视频的整体画布属性。
users layout.users 必选 用于设置混流视频中每个参与者对应的画面属性。注意:用户窗口边界不能超出 canvas 画布。视频互动中最多添加 7 人,纯语音互动中最多添加 21 人。如果人数超限,可能会造成服务故障。
subStreams layout.subStreams 可选 用于设置合流画面中每个辅流画面的属性。开启辅流形式屏幕共享之后,辅流画面默认展示为指定布局样式,详细信息请参考存在辅流的模板布局。您也可以通过此参数调整每个辅流画面在直播画面中的位置。
images layout.images 可选 用于设置混流视频中占位图片属性。若参数 users 指定的用户未上线,会在其对应的区域展示占位图片。

layout.canvas

canvas 参数说明:

参数名称 类型 是否必选 示例值 描述
height Integer 必选 640 整体画布的高度,单位为 px。
取值范围为 0~1920,若设置为奇数值,会自动向下取偶。整体画布的高度与宽度的乘积不得大于 1920*1080。
width Integer 必选 0 整体画布的宽度,单位为 px。
取值范围为 0~1920,若设置为奇数值,会自动向下取偶。整体画布的高度与宽度的乘积不得大于 1920*1080。

color

String

可选

0

画面背景颜色,默认为 0,即黑色。支持以下格式的颜色码:

  • 256 ✖ 256 ✖ R + 256 ✖ G + B的和。请将对应 RGB 的值分别带入此公式计算即可。
  • 十六进制颜色码,即#RRGGBB 或 RRGGBB 格式。例如 #CC00FF。

layout.users

users 参数说明:

参数名称 类型 是否必选 示例值 描述
uid Integer 必选 1111 将指定uid对应用户的视频流拉入直播。
如果添加多个 users,则 uid 不能重复。
x Integer 必选 0 通过 x 和 y 指定画布坐标中的一个点,该点将作为用户图像的左上角。
x 参数用于设置画布的横轴坐标值。
取值范围为 0~1920,若设置为奇数值,会自动向下取偶。
y Integer 必选 0 通过 x 和 y 指定画布坐标中的一个点,该点将作为用户图像的左上角。
y 参数用于设置画布的纵轴坐标值。
取值范围为 0~1920,若设置为奇数值,会自动向下取偶。
width Integer 必选 360 该用户图像在画布中的宽度。
取值范围为 0~1920,若设置为奇数值,会自动向下取偶。
height Integer 必选 360 该用户图像在画布中的高度。
取值范围为 0~1920,若设置为奇数值,会自动向下取偶。

adaption

Integer

可选

1

用于设置占位图片和指定区域的适应属性。可设置为:

  • 0:适应图片。即保证视频内容全部显示,未覆盖区域默认填充背景色。
  • 1:适应区域。即保证所有区域被填满,视频超出部分会被裁剪。若未设置,则默认为1。

pushAudio

Boolean

可选

true

是否在直播中混流该用户的对应音频流。可设置为:

  • true:在直播中混流该用户的对应音频流。
  • false:在直播中将该用户设置为静音。若未设置,默认为 true。

pushVideo

Boolean

可选

true

是否在直播中向观看者播放该用户的对应视频流。可设置为:

  • true:在直播中播放该用户的视频流。
  • false:在直播中不播放该用户的视频流。若未设置,则默认为 true。
zOrder Integer 可选 1 直播视频上用户视频帧的图层编号。取值范围为 0~100,默认为 0。
最小值为 0(默认值),表示该区域图像位于最下层。
最大值为 100,表示该区域图像位于最上层。

layout.subStreams

subStreams 参数说明:

参数名称 类型 是否必选 示例值 描述
uid Integer 必选 1111 将指定 uid 对应用户的屏幕共享流拉入直播。
如果添加多个 subStreams,则 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

用于设置占位图片和指定区域的适应属性。可设置为:

  • 0:适应图片。即保证视频内容全部显示,未覆盖区域默认填充背景色。
  • 1:适应区域。即保证所有区域被填满,视频超出部分会被裁剪。若未设置,则默认为 1。

pushAudio

Boolean

可选

true

是否在直播中向观看者播放该用户的对应音频辅流。可设置为:

  • true(默认):在直播中播放该用户的音频辅流。
  • false:在直播中不播放该用户的音频辅流。

pushVideo

Boolean

可选

true

是否在直播中向观看者播放该用户的对应视频辅流。可设置为:

  • true(默认):在直播中播放该用户的视频辅流。
  • false:在直播中不播放该用户的视频辅流。

zOrder

Integer

可选

1

直播视频上辅流视频的图层编号。取值范围为 0~100,默认为 0。

  • 最小值为 0(默认值),表示该区域图像位于最下层。
  • 最大值为 100,表示该区域图像位于最上层。

layout.images

images 参数说明:

参数名称 类型 是否必选 示例值 描述
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

用于设置占位图片和指定区域的适应属性。可设置为:

  • 0:适应图片。即保证视频内容全部显示,未覆盖区域默认填充背景色。
  • 1:适应区域。即保证所有区域被填满,视频超出部分会被裁剪。若未设置,则默认为 1。

zOrder

Integer

可选

1

直播视频上辅流视频的图层编号。取值范围为 0~100,默认为 0。

  • 最小值为 0(默认值),表示该区域图像位于最下层。
  • 最大值为 100,表示该区域图像位于最上层。
  1. users、subStream 和 images 三个属性均支持设置 zOrder 参数,但在视窗有重叠部分的情况下,三者图层展示的优先顺序为 users > subStream > images。
  2. images 支持最多设置 6 张图片。

rtmpTasks

推流任务详情。

被以下接口引用:查看所有推流任务详情

参数名称 类型 示例 描述
taskId String stream_1 自定义的推流任务 ID。请保证此 ID 唯一。
streamUrl String rtmp://test.url 推流地址,例如 rtmp://test.url。
此处的推流地址可设置为网易云信直播产品中服务端API 创建房间 的返回参数 pushUrl。
layout JSON - 互动直播中的布局相关参数。
参数详情请参考 layout。布局参数的配置方式及典型配置示例请参考旁路推流画面布局
record Boolean true 旁路推流是否需要进行音视频录制。
version Integer 1 推流任务版本,此处请设置为 1。
hostUid Integer 111 主播的 UID。
config JSON - 音视频流配置。详细参数说明请参考config
extraInfo String abc 自定义的媒体补充增强信息。

rtmpTask

推流任务详情。

被以下接口引用:查看指定推流任务详情

参数名称 类型 示例 描述
taskId String stream_1 自定义的推流任务 ID。请保证此 ID 唯一。
streamUrl String rtmp://test.url 推流地址,例如 rtmp://test.url。
此处的推流地址可设置为网易云信直播产品中服务端API 创建房间 的返回参数 pushUrl。
layout JSON - 互动直播中的布局相关参数。
参数详情请参考 layout。布局参数的配置方式及典型配置示例请参考旁路推流画面布局
record Boolean true 旁路推流是否需要进行音视频录制。
version Integer 1 推流任务版本,此处请设置为 1。
hostUid Integer 111 主播的 UID。
config JSON - 音视频流配置。详细参数说明请参考config
extraInfo String abc 自定义的媒体补充增强信息。

config

旁路推流时的音视频流配置。

被以下接口引用: 创建推流任务

参数名称
类型 示例 描述
singleVideoNoTrans Boolean true 单路视频透传开关,可选。默认为关闭状态。
开启后,如果房间中只有一路视频流输入,则不对输入视频流进行转码,不遵循转码布局,直接推流 CDN。
subAllAudio Boolean true 互动直播中是否订阅所有用户的音频流。可选,默认为关闭状态。
开启后,房间中所有成员的音频流均会被混流后推往 CDN。
audioParam JSON 音频编码参数。

audioParam 的参数说明如下表所示。

参数名称
类型 示例 描述
bitRate Number 128 音频推流码率,可选。单位为 kbps,取值范围为 10~192。
语音场景建议设置为 64 及以上码率,音乐场景建议设置为 128 及以上码率。

sampleRate

Number

3200

音频推流采样率。单位为Hz,可设置为:

  • 32000:采样率为 32 kHz。
  • 44100:采样率为 44.1 kHz。 -(默认)48000:采样率为 48 kHz。

channels

Number

1

音频推流声道数。

  • 1:单声道。
  • 2:(默认)双声道。

codecProfile

Number

1

音频编码规格。

  • 0:(默认)LC-AAC 规格,表示基本音频编码规格。
  • 1:HE-AAC 规格,表示高效音频编码规格。

data

云端播放任务信息。

被以下接口引用:

参数名称
类型
是否必选
示例
描述
streamUrl String 必选 rtmp://example.yunxin.io/live/class32/101 实时媒体流直播拉流地址,或音视频文件点播地址。支持如下协议和格式:
  • 协议:HTTP、HTTPS、RTMP、RTSP、HLS
  • 格式:FLV、MP4、MPEG-TS、Matroska (MKV)、MP3、wav 不支持中文等特殊字符,且该字段长度不能超过 1024 字节。
  • uid Int64 必选 101 用户 ID。该 uid 房间内唯一,请勿与其他用户 ID 重复。
    idleTimeout Number 可选 300 云端播放器处于空闲状态的最大时长(秒),不可设置超过 24 小时。
    当媒体流为非播放状态的时长超过该设定值时,任务会自动销毁。

    playTs

    Number

    可选

    1575508644

    云端播放器开始播放在线媒体流时的 Unix 时间戳(秒)。

    • 当 playTs = 0 或为当前时间时,云端播放器在创建成功时自动播放在线媒体流。
    • 当 playTs > 当前时间时,云端播放器会在指定时刻开始播放在线媒体流。此设定适用于定时播放的场景。
    • 当 playTs < 当前时间时:
      • 若在线媒体流为直播流,则云端播放器在创建成功时直接播放。
      • 若在线媒体流为点播流,则云端播放器会自动根据时间差定位到点播文件的中间时间点作为起始播放点。
    mediaType Number 必选 0 媒体流类型:
  • 0:音频
  • 1:视频
  • 2:音视频
  • watermark

    水印配置。

    被以下接口引用:

    watermark 的参数说明如下表所示。

    参数名称
    类型 是否必填 描述
    imgWms watermark.imgWms 可选 图片水印配置。
    transparentLayers watermark.transparentLayers 可选 透明层水印框配置。
    literaWms watermark.literaWms 可选 文字水印配置。
    timestampWm watermark.timestampWm 可选 时间戳水印配置。

    支持多个水印叠加,叠加后图层展示的优先顺序为:时间戳 > 文字 > 透明层 > 图片。

    watermark.imgWms

    imgWms 的参数说明如下表所示。

    参数名称
    类型
    是否必选
    示例
    描述
    imgWms.url String 可选 https://freepngimg.com/XXX/XXX/3-2-love-hearts-eyes-emoji-png.png 图片地址。
    imgWms.wmWidth Integer 可选 100 图片宽度。
    imgWms.wmHeight Integer 可选 100 图片高度。
    imgWms.offsetX Integer 可选 0 图片水印左上角与视频画布左上角的水平距离。
    imgWms.offsetY Interger 可选 0 图片水印左上角与视频画布左上角的垂直距离。

    watermark.transparentLayers

    transparentLayers 的参数说明如下表所示。

    参数名称
    类型
    是否必选
    示例
    描述
    transparentLayers.offsetX Integer 可选 0 水印框左上角与视频画布左上角的水平距离。
    transparentLayers.offsetY Integer 可选 0 水印框左上角与视频画布左上角的垂直距离。
    transparentLayers.wmWidth Integer 可选 480 水印框宽度。
    transparentLayers.wmHeight Integer 可选 100 水印框高度。

    transparentLayers.bgTransparency

    Integer

    可选

    1

    水印框透明度。可设置为:

    • 1:透明度高。
    • 2:透明度中等。
    • 3:透明度低。

    watermark.literaWms

    literaWms 的参数说明如下表所示。

    参数名称
    类型
    是否必选
    示例
    描述
    literaWms.wmLitera String 可选 你好啊xxxxJJJJJLLLL 文字水印内容。
    literaWms.fontSize Integer 可选 50 文字大小。
    literaWms.fontColor String 可选 #FF0000 文字颜色。格式为 #RRGGBB。最大值为 #FFFFFF。
    literaWms.offsetX Integer 可选 0 文字水印左上角与视频画布左上角的水平距离。
    literaWms.offsetY Interger 可选 0 文字水印左上角与视频画布左上角的垂直距离。

    watermark.timestampWm

    timestampWm 的参数说明如下表所示。

    参数名称
    类型
    是否必选
    示例
    描述
    timestampWm.fontSize Integer 可选 50 时间戳的字体大小。
    timestampWm.fontColor String 可选 #FF0000 时间戳的字体颜色。格式为 #RRGGBB。最大值为 #FFFFFF。
    timestampWm.offsetX Integer 可选 0 时间戳水印左上角与视频画布左上角的水平距离。
    timestampWm.offsetY Interger 可选 0 时间戳水印左上角与视频画布左上角的垂直距离。
    此文档是否对你有帮助?
    有帮助
    去反馈
    • members
    • layout
    • layout.canvas
    • layout.users
    • layout.subStreams
    • layout.images
    • rtmpTasks
    • rtmpTask
    • config
    • data
    • watermark
    • watermark.imgWms
    • watermark.transparentLayers
    • watermark.literaWms
    • watermark.timestampWm