云服务器内容精选

  • 操作步骤 获取用户Token,用于调用SparkRTC接口时进行认证鉴权。 在“我的凭证”页面获取username、password、domainname,调用如下接口 获取Token 。详细信息请参见构造请求。 POST https://iam.myhuaweicloud.com/v3/auth/tokensContent-Type: application/json{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //用户名。 "password": "password", //用户登录密码。 "domain": { "name": "domainname" //用户所属的账号名。 } } } }, "scope": { "domain": { "name": "domainname" //用户所属的账号名。 } } }} 如图1所示,红框中的信息为获取用户Token。 图1 获取用户Token 调用创建应用接口创建SparkRTC应用。 选择POST请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: { "app_name" : "rtctest"} 请求响应成功后,返回已创建应用的ID。 {"app_id": "5ff9701f2346968bb306cb43",} 调用创建或更新录制规则接口,创建录制规则。 选择POST请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-rules 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: {"obs_addr": {"bucket": "obsName","location": "cn-north-4","object": "Record/","project_id": "01234567890123456789012345678901"},"record_formats": ["MP4"],"mp4_config": {}} 请求响应成功后,返回已创建的录制规则。 {"app_id": "5ff9701f2346968bb306cb43","rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab","create_time": "2021-04-21T10:29:33Z","hls_config": {"record_cycle": 0,"record_max_duration_to_merge_file": 0},"mp4_config": {"record_cycle": 7200,"record_max_duration_to_merge_file": 0,"record_prefix": "Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time}"},"obs_addr": {"bucket": "obsName","location": "cn-north-4","object": "Record/","project_id": "01234567890123456789012345678901"},"record_formats": ["MP4"],"update_time": "2021-04-21T10:29:33Z"} 调用RTC增值(录制)事件回调配置接口,配置录制回调。 选择PUT请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/record-callback 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: {"url": "http://mydomain.com/callback","auth_key": "8923ab8c2dcef4538923ab8c2dcef453"} 请求响应成功后,返回已创建的回调信息。 {"app_id": "5ff9701f2346968bb306cb43","record_callback": {"auth_key": "8923ab8c2dcef4538923ab8c2dcef453","update_time": "2021-04-07T12:05:18.0718Z","url": "http://mydomain.com/callback","notify_event_subscription": ["RECORD_NEW_FILE_START","RECORD_FILE_COMPLETE","CLOUD_RECORD_OVER"]}} 终端用户通过SparkRTC APP加入某个SparkRTC房间,SparkRTC APP的集成开发请参见客户端SDK。 调用启动单流任务接口,创建录制任务。 选择POST请求方法并输入URI。 https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/individual-stream-jobs 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。 Request Body中传入如下参数: {"room_id": "room001","user_id": "user001","is_record_audio": true,"video_type": "CAMERASTREAM","resolution": "1280*720","resolution_policy": "DOWNWARD","max_idle_time": 30,"record_param": {"record_rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab"}} 请求响应成功后,返回录制任务信息。 {"app_id": "5ff9701f2346968bb306cb43","create_time": "2021-04-21T10:51:55Z","is_record_audio": true,"job_id": "607f87cf00d861eeefffa6c88054cdab","job_unique_id": "a77bb33dbdc948d8","max_idle_time": 30,"push_param": {"rtmp_urls": null},"record_files": null,"record_param": {"record_rule_id": "5d0ec2c53a2c15625017adb8bbbcd9ab"},"resolution_policy": "DOWNWARD","resolution": "1280*720","room_id": "room001","start_time": "2021-04-21T10:51:55Z","state": "INIT","stop_time": "0001-01-01T00:00:00Z","stream_name": "s_607f87cf00d861eeefffa6c88054cdab_room001_user001","update_time": "2021-04-21T10:51:55Z","user_id": "user001","video_type": "CAMERASTREAM"} SparkRTC房间结束音视频互动后,您可以在配置的OBS桶中获取录制文件。
  • 接收增值(录制)事件回调通知内容 SparkRTC服务回调用户提供的接口时,会附带以下信息。 表1 请求Body参数 参数 是否必选 参数类型 描述 job_id 否 String 任务编号,可以用于修改、查看和停止录制任务 stream_name 否 String 流名 app_id 否 String 应用id room_id 否 String 房间id event_type 否 String 通知事件类型: RECORD_NEW_FILE_START:录制模块开始创建新的文件。 RECORD_FILE_COMPLETE:录制模块生成文件完成。 CLOUD_RECORD_SERVER_OVER:云端录制任务结束。 record_format 否 String 录制格式,取值如下。 HLS MP4 download_url 否 String 录制文件的OBS的下载地址。该地址禁止用于内容播放。在event_type为RECORD_FILE_COMPLETE的时候携带。 record_duration 否 Long 录制文件的时长,单位为秒。在event_type为RECORD_FILE_COMPLETE的时候携带。 width 否 Integer 录制文件分辨率的宽。在event_type为RECORD_FILE_COMPLETE的时候携带。 height 否 Integer 录制文件分辨率的高。在event_type为RECORD_FILE_COMPLETE的时候携带。 start_time 否 String 录制文件的开始时间,格式:YYYY-MM-DDThh:mm:ssZ,UTC时间。在event_type为RECORD_FILE_COMPLETE的时候携带。 end_time 否 String 录制文件的结束时间,格式:YYYY-MM-DDThh:mm:ssZ,UTC时间。在event_type为RECORD_FILE_COMPLETE的时候携带。 obs_location 否 String 文件所在OBS所在区域。在event_type为RECORD_FILE_COMPLETE的时候携带。 obs_bucket 否 String 文件所在OBS的bucket。在event_type为RECORD_FILE_COMPLETE的时候携带。 obs_object 否 String 文件所在OBS的bucket的完整路径。在event_type为RECORD_FILE_COMPLETE的时候携带。 detail_message 否 String 状态描述信息。 父主题: 附录
  • 修订记录 表1 修订记录 修改时间 修改说明 2023-08-28 第二十次正式发布 本次变更如下: 新增OBS桶管理接口组。 新增查询详情事件接口和查询指定项目用户异常体验事件接口。 2023-07-06 第十九次正式发布 本次变更如下: 删除启动单流任务、更新单流任务和启动合流任务接口中的“publish_param”参数。 2023-05-24 第十八次正式发布 本次变更如下: 修改启动合流任务接口的“encode_template”参数枚举类型640x480_30_1000为640x480_30_1500。 2022-09-27 第十七次正式发布 本次变更如下: 修改更新单流任务接口的示例代码,修复错误字段。 2022-09-06 第十六次正式发布 本次变更如下: 新增房间管理接口组。 单流任务管理接口组新增更新单流任务接口。 2022-08-29 第十五次正式发布 本次变更如下: 修改启动合流任务接口和查询合流任务接口的参考示例。 2022-07-05 第十四次正式发布 本次变更如下: 修改查询用户通话指标接口的参考示例。 所有接口中的响应Header参数“X-request-id”修改为“X-Request-Id”。 2022-07-01 第十三次正式发布 本次变更如下: 修改部分接口参考示例。 下线“查询学生和老师同时在线时长”接口。 2022-06-28 第十二次正式发布 本次变更如下: 修改部分接口示例。 优化启动合流任务背景图相关字段的描述。 2022-03-09 第十一次正式发布 本次变更如下: 启动合流任务、查询合流任务和修改合流任务接口“encode_template”参数,增加如下枚举类型: 1920*1080_30_3150 1920*1080_15_2080 1280*720_30_1710 1280*720_15_1130 640*480_30_1000 640*480_15_500 480*360_30_490 480*360_15_320 2022-01-27 第十次正式发布 本次变更如下: 新增RTC.00002001~RTC.00002006错误码。 2021-12-31 第九次正式发布 本次变更如下: 修改API的operationID,完善API调试链接。 2021-12-17 第八次正式发布 本次变更如下: 启动合流任务、查询合流任务和修改合流任务接口“encode_template”参数,增加枚举类型640x480_15_1000。 2021-12-08 第七次正式发布 本次变更如下: 新增查询用户异常体验事件、查询异常事件用户分布接口。 2021-12-07 第六次正式发布 本次变更如下: 查询房间列表、查询用户列表、查询实时规模、查询实时质量数据、查询实时网络、查询历史规模和查询历史质量接口中增加查询时间间隔的描述。 查询用户通话指标接口增加“stream_id”、“time_type”、“limit”、“offset”参数。 下线接收增值(录制)时间回调通知内容接口。 2021-09-22 第五次正式发布 本次变更如下: 下线查询用户异常体验事件、查询用户异常体验事件分布、查询用户详情、查询房间详情、查询服务端实时通话指标和查询流量数据分布接口。 2021-09-07 第四次正式发布 本次变更如下: 应用回调管理中增加接收增值(录制)时间回调通知内容接口。 数据统计分析中增加查询服务端实时通话指标和查询流量数据分布接口。 修改创建或更新录制规则接口的“record_prefix”参数,增加自定义特殊变量的说明。 修改“使用前必读”中的API流控限制。 增加启动合流任务的请求示例。 2021-08-05 第三次正式发布 本次变更如下: 新增数据统计分析接口。 2021-07-23 第二次正式发布 本次变更如下: 下线“开关访问控制”和“查询访问控制参数”接口。 2021-04-20 第一次正式商用发布
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。
  • 响应参数 状态码: 204 表3 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 状态码: 404 表4 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表6 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 mode 是 String 录制模式。 AUTO_RECORD_OFF:关闭自动录制。 AUTO_INDIVIDUAL_RECORD:开启单流自动录制,此时record_rule_id必须非空。 record_rule_id 否 String 录制规则id。
  • 响应示例 状态码: 200 任务创建成功,返回app的概要信息,如包含app_id { "app_id" : "123456789abcdefghijklmno", "auto_record_mode" : { "mode" : "AUTO_RECORD_OFF", "update_time" : "2020-07-26T07:53:05.075Z" }} 状态码: 400 更新自动录制任务失败,语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue"} 状态码: 404 更新自动录制任务失败,应用不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue"} 状态码: 500 更新自动录制任务失败,服务器错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError"}
  • 接口约束 开启自动单流录制功能之后,只针对新创建的房间有效,对开启自动录制功能之前已经创建的房间不生效。 单流自动录制任务的流名规则: {appid}_{roomid}_{userid}_{media_type}_{video_type} {media_type}可取值为v(代表纯视频录制),av(代表音视频录制)。 {video_type}可取值为m(代表录主流摄像头视频),a(代表录辅流视频)。 可能的组合有_av_m(自动录制主流和音频)和_v_a(自动录制辅流视频,无音频)。
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表5 响应Body参数 参数 参数类型 描述 app_id String 应用id auto_record_mode AppAutoRecordMode object 自动录制配置 表6 AppAutoRecordMode 参数 参数类型 描述 mode String 录制模式。 AUTO_RECORD_OFF:关闭自动录制。 AUTO_INDIVIDUAL_RECORD:开启单流自动录制,此时record_rule_id必须非空。 record_rule_id String 录制规则id。 update_time String 更新时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC。 状态码: 400 表7 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表9 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表11 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表12 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 修改成功 { "job_id" : "607824b4fa163e19fe301cc817dda855", "stream_name" : "m_607824b4fa163e19fe301cc817dda855_gigu", "app_id" : "123456789abcdefghijklmno", "room_id" : "gigu", "mix_param" : { "room_id" : "gigu", "encode_template" : "1920x1080_30_4620", "max_idle_time" : 0, "layout_template" : "nine_grids_view" }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" }, "create_time" : "2021-04-16T16:22:44Z", "update_time" : "2021-04-16T16:22:44Z", "state" : "INIT", "start_time" : "2021-04-16T16:22:44Z", "stop_time" : "0001-01-01T00:00:00Z"} 状态码: 400 修改失败,语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue"} 状态码: 404 修改失败,应用不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue"} 状态码: 500 修改失败,服务器错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 内容类型。 X-Auth-Token 否 String 用户Token。使用Token鉴权方式时必选。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Authorization 否 String 使用AK/SK方式认证时必选,携带的鉴权信息。 X-Sdk-Date 否 String 使用AK/SK方式认证时必选,请求的发生时间。 X-Project-Id 否 String 使用AK/SK方式认证时必选,携带项目ID信息。 表3 请求Body参数 参数 是否必选 参数类型 描述 mix_param 是 UpdateMixParam object 合流参数 表4 UpdateMixParam 参数 是否必选 参数类型 描述 layout_template 否 String 视频布局模板编号,仅支持自定义模板之间的更新。 background_image 否 String 画布背景图地址,图片先上传obs。默认使用等比缩放裁剪,保证铺满。格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg default_user_background_image 否 String 默认用户背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。 screen_background_image 否 String 共享屏幕的背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。 在一大多小的布局场景下,无论大窗是显示非指定用户(屏幕共享人的桌面)还是指定用户的共享桌面,都通过该字段指定背景图。 max_idle_time 否 Integer 最长空闲频道时间。 取值范围:[5,43200],默认值为30。 单位:秒。 如果频道内无连麦方的状态持续超过该时间,录制程序会自动退出。退出后,再次调用start请求,会产生新的录制任务。 连麦方指:joiner或者publisher的用户。 layout_panes 否 Array of MixLayoutPane objects 需要混流的视频列表。若不需要视频混流,则可不传递该参数。 user_background_images 否 Array of MixUserBackgroundImage objects 指定用户背景图,优先级大于default_user_background_image 表5 MixLayoutPane 参数 是否必选 参数类型 描述 id 否 Integer 窗口id,从1开始编号 user_id 否 String 加入房间的用户id video_type 否 String 标识视频流的类型,可选摄像头流或者屏幕分享流。 CAMERASTREAM:摄像头视频流 SCREENSTREAM:屏幕分享视频流 默认为CAMERASTREAM。 x 否 Float 坐标x,归一化百分比,画布上该画面左上角的横坐标的相对值,范围是 [0.0,1.0]。从左到右布局,0.0在最左端,1.0在最右端,小数取值范围在float内,自定义布局场景下填写本字段。 y 否 Float 坐标y,归一化百分比,画布上该画面左上角的纵坐标的相对值,范围是 [0.0,1.0]。从上到下布局,0.0在最上端,1.0在最下端,小数取值范围在float内,自定义布局场景下填写本字段。 width 否 Float 窗格宽,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。 height 否 Float 窗格高,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。 zorder 否 Integer 叠放顺序,0为最底层,1层在0层之上,以此类推,最大支持25层,自定义布局场景下填写本字段。 crop_mode 否 String 裁剪模式,自定义布局场景下填写本字段,支持两种模式: KEEP_RATIO_PADDING :保持比例留边。 KEEP_RATIO_CROP :保持比例裁剪。 filling_policy 否 String 填充策略,仅限屏幕共享模板(包括screen_share_right、screen_share_left)场景下填写本字段,支持两种模式: FIXED_USER :固定用户填充。 SHARED_SCREEN :共享屏幕填充。 表6 MixUserBackgroundImage 参数 是否必选 参数类型 描述 user_id 是 String 需要设置背景图的用户ID image_uri 是 String 需要设置背景图的地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg
  • 响应参数 状态码: 200 表7 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表8 响应Body参数 参数 参数类型 描述 job_id String 任务编号,可以用于修改、查看和停止合流任务 stream_name String 流名 app_id String 应用id room_id String 房间id mix_param MixParam object 合流参数 record_param RecordParam object 录制参数 create_time String 任务创建的时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC update_time String 任务中的布局更新的时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC state String 任务状态。 INIT:任务正在初始化 RUNNING:任务正在运行 STOPPED:任务已停止 stop_reason String 任务结束原因 TENANT_STOP EXCEED_MAX_IDLE_TIME INTERNAL_ERROR description String 状态描述,对state字段的一些补充说明,可用于人工查阅。 start_time String 任务开始时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC stop_time String 任务结束时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC 表9 MixParam 参数 参数类型 描述 room_id String 房间id encode_template String 输出编码模板名称 1920*1080_30_4620:输出流是1080p,帧率30,码率4.62Mbps 1920*1080_30_3150:输出流是1080p,帧率30,码率3.15Mbps 1920*1080_15_3460:输出流是1080p,帧率15,码率3.46Mbps 1920*1080_15_2080:输出流是1080p,帧率15,码率2.08Mbps 1280*720_30_3420:输出流是720p,帧率30,码率3.42Mbps 1280*720_30_1710:输出流是720p,帧率30,码率1.71Mbps 1280*720_15_2260:输出流是720p,帧率15,码率2.26Mbps 1280*720_15_1130:输出流是720p,帧率15,码率1.13Mbps 640*480_30_1500:输出流是480p,帧率30,码率1.50Mbps 640*480_15_500:输出流是480p,帧率15,码率500Kbps 640*480_30_1000 输出流是480p,帧率30,码率1000Kbps 480*360_30_490:输出流是360p,帧率30,码率490Kbps 480*360_15_320:输出流是360p,帧率15,码率320Kbps max_idle_time Integer 最长空闲频道时间。 取值范围:[5,43200],默认值为30。 单位:秒。 如果频道内无连麦方的状态持续超过该时间,录制程序会自动退出。退出后,再次调用start请求,会产生新的录制任务。 连麦方指:joiner或者publisher的用户。 layout_template String 视频布局模板编号,不混视频的时候,不需要带。 nine_grids_view:九宫格模板(自适应模板) screen_share_left:主视图在左边的屏幕共享模板(自适应模板) screen_share_right:主视图在右边的屏幕共享模板(自适应模板) custom:自定义布局 default_user_background_image String 默认用户背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。 screen_background_image String 共享屏幕的背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。 在一大多小的布局场景下,无论大窗是显示非指定用户(屏幕共享人的桌面)还是指定用户的共享桌面,都通过该字段指定背景图。 background_image String 画布背景图地址,使用背景图功能需先上传图片到obs,填写此字段要求格式为s3://bucket/object,其中bucket和object指图片所在的桶和路径,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。 layout_panes Array of MixLayoutPane objects 需要混流的视频列表。若不需要混流视频,则可不传递该参数。 nine_grids_view模板不需要填写本字段。 user_background_images Array of MixUserBackgroundImage objects 指定用户背景图,优先级大于default_user_background_image 表10 MixLayoutPane 参数 参数类型 描述 id Integer 窗口id,从1开始编号 user_id String 加入房间的用户id video_type String 标识视频流的类型,可选摄像头流或者屏幕分享流。 CAMERASTREAM:摄像头视频流 SCREENSTREAM:屏幕分享视频流 默认为CAMERASTREAM。 x Float 坐标x,归一化百分比,画布上该画面左上角的横坐标的相对值,范围是 [0.0,1.0]。从左到右布局,0.0在最左端,1.0在最右端,小数取值范围在float内,自定义布局场景下填写本字段。 y Float 坐标y,归一化百分比,画布上该画面左上角的纵坐标的相对值,范围是 [0.0,1.0]。从上到下布局,0.0在最上端,1.0在最下端,小数取值范围在float内,自定义布局场景下填写本字段。 width Float 窗格宽,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。 height Float 窗格高,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。 zorder Integer 叠放顺序,0为最底层,1层在0层之上,以此类推,最大支持25层,自定义布局场景下填写本字段。 crop_mode String 裁剪模式,自定义布局场景下填写本字段,支持两种模式: KEEP_RATIO_PADDING :保持比例留边。 KEEP_RATIO_CROP :保持比例裁剪。 filling_policy String 填充策略,仅限屏幕共享模板(包括screen_share_right、screen_share_left)场景下填写本字段,支持两种模式: FIXED_USER :固定用户填充。 SHARED_SCREEN :共享屏幕填充。 表11 MixUserBackgroundImage 参数 参数类型 描述 user_id String 需要设置背景图的用户ID image_uri String 需要设置背景图的地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg 表12 RecordParam 参数 参数类型 描述 record_rule_id String 录制规则id。 状态码: 400 表13 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表14 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表15 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表16 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表17 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表18 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 请求示例 创建一个合流录制任务。房间号:room001,输出流:720p,帧率:15,码率:2.26Mbps,视频布局为九宫格,最长空闲频道时间:30秒,录制规则id:5f5e172b9016ed5b0961a43 POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs{ "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "nine_grids_view" }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" }} 创建一个合流录制任务,视频布局为屏幕共享模板,主视图在右边,主视图显示共享屏幕 POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs{ "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "screen_share_right", "layout_panes" : [ { "id" : 1, "user_id" : "", "video_type" : "SCREENSTREAM", "filling_policy" : "SHARED_SCREEN" } ] }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" }} 创建一个合流录制任务,视频布局为屏幕共享模板,主视图在右边,主视图显示摄像头 POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs{ "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "screen_share_right", "layout_panes" : [ { "id" : 1, "user_id" : "user1", "video_type" : "CAMERASTREAM", "filling_policy" : "FIXED_USER" } ] }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" }} 创建一个合流录制任务,视频布局为自定义布局 POST https://rtc-api.myhuaweicloud.com/v2/apps/{app_id}/mix-stream-jobs{ "mix_param" : { "room_id" : "room001", "encode_template" : "1280x720_15_2260", "max_idle_time" : 30, "layout_template" : "custom", "layout_panes" : [ { "id" : 1, "user_id" : "user1", "video_type" : "CAMERASTREAM", "x" : 0, "y" : 0, "width" : 0.666, "height" : 0.333, "crop_mode" : "KEEP_RATIO_CROP" }, { "id" : 2, "user_id" : "user2", "video_type" : "CAMERASTREAM", "x" : 0.666, "y" : 0, "width" : 0.333, "height" : 0.666, "crop_mode" : "KEEP_RATIO_CROP" } ] }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" }}
  • 响应示例 状态码: 201 任务创建成功,返回job的概要信息 { "job_id" : "607824b4fa163e19fe301cc817dda855", "stream_name" : "m_607824b4fa163e19fe301cc817dda855_gigu", "app_id" : "123456789abcdefghijklmno", "room_id" : "gigu", "mix_param" : { "room_id" : "gigu", "encode_template" : "1920x1080_30_4620", "max_idle_time" : 0, "layout_template" : "nine_grids_view" }, "record_param" : { "record_rule_id" : "5f5e172b9016ed5b0961a43" }, "create_time" : "2021-04-16T16:22:44Z", "update_time" : "2021-04-16T16:22:44Z", "state" : "INIT", "start_time" : "2021-04-16T16:22:44Z", "stop_time" : "0001-01-01T00:00:00Z"} 状态码: 400 创建合流任务失败,语义有误,当前请求无法被服务器理解,或参数有误 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue"} 状态码: 404 app编号不存在 { "error_code" : "RTC.00001003", "error_msg" : "InvalidParameterValue"} 状态码: 500 创建合流任务失败,服务器错误 { "error_code" : "RTC.00002xxx", "error_msg" : "InternalError"}
  • 响应参数 状态码: 201 表8 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表9 响应Body参数 参数 参数类型 描述 job_id String 任务编号,可以用于修改、查看和停止合流任务 stream_name String 流名 app_id String 应用id room_id String 房间id mix_param MixParam object 合流参数 record_param RecordParam object 录制参数 create_time String 任务创建的时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC update_time String 任务中的布局更新的时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC state String 任务状态。 INIT:任务正在初始化 RUNNING:任务正在运行 STOPPED:任务已停止 stop_reason String 任务结束原因 TENANT_STOP EXCEED_MAX_IDLE_TIME INTERNAL_ERROR description String 状态描述,对state字段的一些补充说明,可用于人工查阅。 start_time String 任务开始时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC stop_time String 任务结束时间,形如“2006-01-02T15:04:05.075Z”,时区为:UTC 表10 MixParam 参数 参数类型 描述 room_id String 房间id encode_template String 输出编码模板名称 1920*1080_30_4620:输出流是1080p,帧率30,码率4.62Mbps 1920*1080_30_3150:输出流是1080p,帧率30,码率3.15Mbps 1920*1080_15_3460:输出流是1080p,帧率15,码率3.46Mbps 1920*1080_15_2080:输出流是1080p,帧率15,码率2.08Mbps 1280*720_30_3420:输出流是720p,帧率30,码率3.42Mbps 1280*720_30_1710:输出流是720p,帧率30,码率1.71Mbps 1280*720_15_2260:输出流是720p,帧率15,码率2.26Mbps 1280*720_15_1130:输出流是720p,帧率15,码率1.13Mbps 640*480_30_1500:输出流是480p,帧率30,码率1.50Mbps 640*480_15_500:输出流是480p,帧率15,码率500Kbps 640*480_30_1000 输出流是480p,帧率30,码率1000Kbps 480*360_30_490:输出流是360p,帧率30,码率490Kbps 480*360_15_320:输出流是360p,帧率15,码率320Kbps max_idle_time Integer 最长空闲频道时间。 取值范围:[5,43200],默认值为30。 单位:秒。 如果频道内无连麦方的状态持续超过该时间,录制程序会自动退出。退出后,再次调用start请求,会产生新的录制任务。 连麦方指:joiner或者publisher的用户。 layout_template String 视频布局模板编号,不混视频的时候,不需要带。 nine_grids_view:九宫格模板(自适应模板) screen_share_left:主视图在左边的屏幕共享模板(自适应模板) screen_share_right:主视图在右边的屏幕共享模板(自适应模板) custom:自定义布局 default_user_background_image String 默认用户背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。 screen_background_image String 共享屏幕的背景图地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。 在一大多小的布局场景下,无论大窗是显示非指定用户(屏幕共享人的桌面)还是指定用户的共享桌面,都通过该字段指定背景图。 background_image String 画布背景图地址,使用背景图功能需先上传图片到obs,填写此字段要求格式为s3://bucket/object,其中bucket和object指图片所在的桶和路径,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg。默认使用等比缩放裁剪,保证铺满。 layout_panes Array of MixLayoutPane objects 需要混流的视频列表。若不需要混流视频,则可不传递该参数。 nine_grids_view模板不需要填写本字段。 user_background_images Array of MixUserBackgroundImage objects 指定用户背景图,优先级大于default_user_background_image 表11 MixLayoutPane 参数 参数类型 描述 id Integer 窗口id,从1开始编号 user_id String 加入房间的用户id video_type String 标识视频流的类型,可选摄像头流或者屏幕分享流。 CAMERASTREAM:摄像头视频流 SCREENSTREAM:屏幕分享视频流 默认为CAMERASTREAM。 x Float 坐标x,归一化百分比,画布上该画面左上角的横坐标的相对值,范围是 [0.0,1.0]。从左到右布局,0.0在最左端,1.0在最右端,小数取值范围在float内,自定义布局场景下填写本字段。 y Float 坐标y,归一化百分比,画布上该画面左上角的纵坐标的相对值,范围是 [0.0,1.0]。从上到下布局,0.0在最上端,1.0在最下端,小数取值范围在float内,自定义布局场景下填写本字段。 width Float 窗格宽,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。 height Float 窗格高,归一化百分比,小数取值范围在float内,自定义布局场景下填写本字段。 zorder Integer 叠放顺序,0为最底层,1层在0层之上,以此类推,最大支持25层,自定义布局场景下填写本字段。 crop_mode String 裁剪模式,自定义布局场景下填写本字段,支持两种模式: KEEP_RATIO_PADDING :保持比例留边。 KEEP_RATIO_CROP :保持比例裁剪。 filling_policy String 填充策略,仅限屏幕共享模板(包括screen_share_right、screen_share_left)场景下填写本字段,支持两种模式: FIXED_USER :固定用户填充。 SHARED_SCREEN :共享屏幕填充。 表12 MixUserBackgroundImage 参数 参数类型 描述 user_id String 需要设置背景图的用户ID image_uri String 需要设置背景图的地址,图片先上传obs,格式s3://bucket/object,如:s3://rtc-bucket-cn-north-4/img/testImg.jpg 表13 RecordParam 参数 参数类型 描述 record_rule_id String 录制规则id。 状态码: 400 表14 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表15 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表16 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表17 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表18 响应Header参数 参数 参数类型 描述 X-request-Id String 此字段携带请求ID号,以便任务跟踪。 表19 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述