云端录制
服务域名
线上服务器: http://rtcapi.xueersi.com
测试环境:https://api2.xueersi.com/rtcapi2stage
开始单流录制
接口地址
{$域名}/api/record/startIndividualSaas
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Authorization | 接口签名值 | Authorization签名 |
Traceid | 随机唯一字符串 | 排查问题使用 |
请求json参数
字段 | 类型 | 必须 | 描述 |
appid | String | 是 | appid 申请分配 |
uid | Number | 是 | 用户uid |
room | String | 是 | 房间id |
callBackUrl | String | 否 | 录制完成,回调业务地址如果需要回调必须设置,回调会比较及时,也支持业务方自主查询 |
bgImg | JSON | 否 | 设置背景图 |
maxIdleTime | Number | 否 | 最长空闲频道时间,频道内无用户的状态持续超过该时间,录制自动退出默认:30s |
返回内容
字段 | | 类型 | 必须 | 描述 |
s | | Number | 是 | 状态码 10000 成功 其他值为失败 |
e | | String | 是 | 返回说明信息 |
d | | Json | 是 | |
| sid | String | 是 | 录制返回值,结束/查询录制需要传递该参数 |
demo
结束单流录制
接口地址
{$域名}/ (opens new window)api/record/stopIndividualSaas
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Authorization | 接口签名值 | Authorization签名 |
Traceid | 随机唯一字符串 | 排查问题使用 |
请求json参数
字段 | 类型 | 必须 | 描述 |
appid | String | 是 | 引擎appid |
sid | String | 是 | 开始录制返回的值 |
返回内容
字段 | 类型 | 必须 | 描述 |
s | Number | 是 | 状态码 10000 成功 其他值为失败 |
e | String | 是 | 返回说明信息 |
d | Json | 是 | |
demo
开始合流录制
接口地址
{$域名}/api/record/startMixSaas
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Authorization | 接口签名值 | Authorization签名 |
Traceid | 随机字符串 | 排查问题使用 |
请求json参数
字段 | 类型 | 必须 | 描述 |
appid | String | 是 | 引擎appid |
room | String | 是 | 房间id |
callBackUrl | String | 否 | 录制完成,回调业务地址如果需要回调必须设置,参考录制回调,回调会比较及时 |
bgImg | Json | 否 | 设置背景图 |
maxIdleTime | Number | 否 | 最长空闲频道时间,频道内无用户的状态持续超过该时间,录制程序会自动退出默认:30s |
transcodingConfig | Json | 是 | 合流布局,转码布局设置 |
subscribeAudioUids | Json | 否 | 指定要订阅的音频流,即音频订阅白名单 []String{"123", "124"} |
subscribeVideoUids | Json | 否 | 指定要订阅的视频流,即视频订阅白名单。[]String{"345", "456"} |
unSubscribeAudioUids | Json | 否 | 指定不订阅的音频流,即音频订阅黑名单 []String{"234", "235"} |
unSubscribeVideoUids | Json | 否 | 指定不订阅的视频流,即视频订阅黑名单。[]String{"567", "678"} |
transcodingConfig:
参数 | 类型 | 必填 | 描述 |
width | Number | 否 | 视频的宽度,单位为像素,默认值 360。width 不能超过 1920,且 width 和 height 的乘积不能超过 1920 * 1080,超过最大值会报错。 |
height | Number | 否 | 视频的高度,单位为像素,默认值 640。height 不能超过 1920,且 width 和 height 的乘积不能超过 1920 * 1080,超过最大值会报错。 |
fps | Number | 否 | 视频的帧率,单位 fps,默认值 15。 |
bitrate | Number | 否 | 视频的码率,单位 Kbps,默认值 500。 |
maxResolutionUid | String | 否 | 悬浮布局或垂直布局时,用该参数指定显示大视窗画面的用户 ID。 |
mixedVideoLayout | Number | 否 | 设置视频合流布局,0、1、2 为预设的合流布局,3 为自定义合流布局。该参数设为 3 时必须设置 layoutConfig 参数。0:(默认)悬浮布局。第一个加入频道的用户在屏幕上会显示为大视窗,铺满整个画布,其他用户的视频画面会显示为小视窗,从下到上水平排列,最多 4 行,每行 4 个画面,最多支持共 17 个画面。1:自适应布局。根据用户的数量自动调整每个画面的大小,每个用户的画面大小一致,最多支持 17 个画面。2:垂直布局。指定一个用户在屏幕左侧显示大视窗画面,其他用户的小视窗画面在右侧垂直排列,最多两列,一列 8 个画面,最多支持共 17 个画面。[默认布局说明见文末]3:自定义布局。须设置 layoutConfig 参数自定义合流布局。单流模式下设置该参数设置为0即可,设置为其他值无意义。 |
backgroundColor | String | 否 | 屏幕(画布)的背景颜色。支持 RGB 颜色表,字符串格式为 # 号后 6 个十六进制数,默认值 "#000000" 黑色。 |
layoutConfig | JSON | 否 | 由每个用户对应的布局画面设置组成的数组,支持最多 17 个用户画面。当 mixedVideoLayout 设为 3 时,必须通过该参数自定义合流布局。仅适用于合流模式,单流模式下设置该参数无意义。individual 模式下每个用户都是单独录制成一个文件,全屏显示。 |
layoutConfig 一个用户画面设置包括以下参数:
参数 | 类型 | 必填 | 描述 |
uid | String | 是 | 待显示在该区域的用户的 UID,32 位无符号整数。如果不指定 UID,会按照用户加入频道的顺序自动匹配 layoutConfig 中的画面设置。 |
x_axis | Float | 是 | 屏幕里该画面左上角的横坐标的相对值,范围是 [0.0,1.0],精确到小数点后六位。从左到右布局,0.0 在最左端,1.0 在最右端。 |
y_axis | Float | 是 | 屏幕里该画面左上角的纵坐标的相对值,范围是 [0.0,1.0],精确到小数点后六位。从上到下布局,0.0 在最上端,1.0 在最下端。 |
width | Float | 是 | 该画面宽度的相对值,取值范围是 [0.0,1.0],精确到小数点后六位。 |
height | Float | 是 | 该画面高度的相对值,取值范围是 [0.0,1.0],精确到小数点后六位。 |
alpha | Float | 否 | 图像的透明度。取值范围是 [0.0,1.0] ,精确到小数点后六位。默认值 1.0。0.0 表示图像为透明的,1.0 表示图像为完全不透明的。 |
render_mode | Number | 否 | 画面显示模式:0:(默认)裁剪模式。1:缩放模式。 |
返回内容
字段 | 类型 | 必须 | 描述 |
s | Number | 是 | 状态码 10000 成功 其他值为失败 |
e | String | 是 | 返回说明信息 |
d | Json | 是 | |
| sid | 是 | 录制返回值,结束/查询录制需要传递该参数 |
demo
结束合流录制
接口地址
{$域名}/api/record/stopMixSaas
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Authorization | 接口签名值 | Authorization签名 |
Traceid | 随机字符串 | 排查问题使用 |
请求json参数
字段 | 类型 | 必须 | 描述 |
appid | String | 是 | 引擎appid |
sid | String | 是 | 开始录制返回的值 |
room | String | 是 | 房间id |
返回内容
字段 | 类型 | 必须 | 描述 |
s | Number | 是 | 状态码 0 成功 其他值为失败 |
e | String | 是 | 返回说明信息 |
d | Json | 是 | |
demo
更新录制订阅成员
接口地址
{$域名}/ (opens new window)api/record/updateSaas
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Authorization | 接口签名值 | Authorization签名 |
Traceid | 随机字符串 | 排查问题使用 |
请求json参数
字段 | 类型 | 必须 | 描述 |
appid | String | 是 | 引擎appid |
sid | String | 是 | 开始录制返回的值 |
room | String | 是 | 房间id |
clientRequest | Json | 是 | 订阅参数 包含 streamSubscribe 字段。streamSubscribe 为 JSON 类型,用于更新订阅名单 |
streamSubscribe 参数
参数 | 类型 | 必填 | 描述 |
audioUidList | JSON | 否 | subscribeAudioUids JSONArray unSubscribeAudioUids JSONArray |
videoUidList | JSON | 否 | subscribeVideoUids JSONArray unSubscribeVideoUids JSONArray |
返回内容
字段 | 类型 | 必须 | 描述 |
s | Number | 是 | 状态码 0 成功 其他值为失败 |
e | String | 是 | 返回说明信息 |
d | Json | 是 | |
demo
更新布局
接口地址
{$域名}/api/record/updateLayoutSaas
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Authorization | 接口签名值 | Authorization签名 |
Traceid | 随机字符串 | 排查问题使用 |
请求json参数
字段 | 类型 | 必须 | 描述 |
appid | String | 是 | 引擎appid |
sid | String | 是 | 开始录制返回的值 |
room | String | 是 | 房间id |
clientRequest | Json | 是 | 布局参数 |
clientRequest具体参数
参数 | 类型 | 必填 | 描述 |
mixedVideoLayout | Number | 否 | 设置视频合流布局,0、1、2 为预设的合流布局,3 为自定义合流布局。该参数设为 3 时必须设置 layoutConfig 参数。0:(默认)悬浮布局。第一个加入频道的用户在屏幕上会显示为大视窗,铺满整个画布,其他用户的视频画面会显示为小视窗,从下到上水平排列,最多 4 行,每行 4 个画面,最多支持共 17 个画面。1:自适应布局。根据用户的数量自动调整每个画面的大小,每个用户的画面大小一致,最多支持 17 个画面。2:垂直布局。指定一个用户在屏幕左侧显示大视窗画面,其他用户的小视窗画面在右侧垂直排列,最多两列,一列 8 个画面,最多支持共 17 个画面。3:自定义布局。设置 layoutConfig 参数自定义合流布局。 |
maxResolutionUid | String | 否 | 悬浮布局或垂直布局时,用该参数指定显示大视窗画面的用户 ID。 |
backgroundColor | String | 否 | 屏幕(画布)的背景颜色。支持 RGB 颜色表,字符串格式为 # 号后 6 个十六进制数。默认值 "#000000" 黑色。 |
layoutConfig | JSONArray | 否 | 由每个用户对应的布局画面设置组成的数组,支持最多 17 个用户画面。当 mixedVideoLayout 设为 3 时,可以通过该参数自定义合流布局。同start接口中transcodingConfig参数中的layoutConfig参数。 |
width | Number | 否 | 视频的宽度,单位为像素,默认值 360。width 不能超过 1920,且 width 和 height 的乘积不能超过 1920 * 1080,超过最大值会报错。 |
height | Number | 否 | 视频的高度,单位为像素,默认值 640。height 不能超过 1920,且 width 和 height 的乘积不能超过 1920 * 1080,超过最大值会报错。 |
fps | Number | 否 | 视频的帧率,单位 fps,默认值 15。 |
bitrate | Number | 否 | 视频的码率,单位 Kbps,默认值 500。 |
返回内容
字段 | 类型 | 必须 | 描述 |
s | Number | 是 | 状态码 0 成功 其他值为失败 |
e | String | 是 | 返回说明信息 |
d | Json | 是 | |
demo
录制回调业务
接口地址
https://xxx.com/record/callback // 这个接口由业务方给出
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Traceid | 随机字符串 | 排查问题使用 |
请求json参数
字段 | | 类型 | 必须 | 描述 |
s | | Number | 是 | 状态码 |
e | | String | 是 | 说明信息 |
d | | object | | |
| fullHlsurl | String | 是 | 录制m3u8地址 |
| fullMp4Url | String | 是 | 录制mp4地址 |
备注:回调只会进行一次, 24小时内支持主动查询录制结果
查询录制结果
接口地址
{$域名}/api/record/ (opens new window)querySaas
字段 | 值 | 描述 |
Method | POST | Http 方法 |
Content-Type | application/json | json格式 |
Authorization | 接口签名值 | Authorization签名 |
Traceid | 随机字符串 | 排查问题使用 |
请求json参数
字段 | 类型 | 必须 | 描述 |
appid | String | 是 | 引擎appid |
sid | String | 是 | 开始录制返回的值 |
返回内容
字段 | | 类型 | 必须 | 描述 |
s | | Number | 是 | 状态码 |
e | | String | 是 | 说明信息 |
d | | object | | |
| fullHlsurl | String | 是 | 录制m3u8地址 |
| fullMp4Url | String | 是 | 录制mp4地址 |
demo