云服务器内容精选

  • 响应示例 状态码: 200 查询录制配置成功 { "total" : 1, "record_config" : [ { "id" : "42810594c2fc9xxxx36b7784c76a06e8", "publish_domain" : "publish.example.com", "app" : "live", "stream" : "*", "record_type" : "CONTINUOUS_RECORD", "default_record_config" : { "record_format" : [ "HLS" ], "obs_addr" : { "bucket" : "mybucket", "location" : "region1", "object" : "record/" }, "hls_config" : { "record_cycle" : 900, "record_prefix" : "record-publish_domain-app-stream-file_start_time_unix/record-publish_domain-app-stream-file_start_time_unix", "record_ts_prefix" : "{stream}-{file_start_time_unix}-{file_end_time_unix}-{ts_sequence_number}", "record_slice_duration" : 10, "record_max_duration_to_merge_file" : 60 } } } ] } 状态码: 400 参数错误 { "error_code" : "LIVE.100011001", "error_msg" : "Request Illegal" }
  • 响应参数 状态码: 200 表4 响应Header参数 参数 参数类型 描述 X-request-id String 此字段携带请求ID号,以便任务跟踪。格式为:request_id-timestamp-hostname(request_id在服务器端生成UUID,timestamp为当前时间戳,hostname为处理当前接口的服务器名称) 表5 响应Body参数 参数 参数类型 描述 total Integer 查询结果的总元素数量 record_config Array of RecordRule objects 录制配置数组 表6 RecordRule 参数 参数类型 描述 id String 规则ID,由服务端返回。创建或修改的时候不携带 publish_domain String 直播推流 域名 app String 应用名,如果需要匹配任意应用则需填写*。录制规则匹配的时候,优先精确app匹配,如果匹配不到,则匹配* stream String 录制的流名,如果需要匹配任意流名则需填写*。录制规则匹配的时候,优先精确stream匹配,如果匹配不到,则匹配* record_type String 录制类型,包括:CONTINUOUS_RECORD,COMMAND_RECORD。默认CONTINUOUS_RECORD。 CONTINUOUS_RECORD:持续录制,在该规则类型配置后,只要有流推送到录制系统,即触发录制。 COMMAND_RECORD:命令录制,在该规则类型配置后,在流推送到录制系统后,租户需要通过命令控制该流的录制开始和结束。 default_record_config DefaultRecordConfig object 默认录制规则配置 create_time String 创建时间,格式:yyyy-mm-ddThh:mm:ssZ,UTC时间。 在查询的时候返回 update_time String 修改时间,格式:yyyy-mm-ddThh:mm:ssZ,UTC时间。 在查询的时候返回 表7 DefaultRecordConfig 参数 参数类型 描述 record_format Array of strings 录制格式,当前支持:FLV,HLS,MP4三种格式,设置格式时必须使用大写字母 obs_addr RecordObsFileAddr object 录制保存的租户的桶信息 hls_config HLSRecordConfig object HLS配置规则 flv_config FLVRecordConfig object FLV配置规则 mp4_config MP4RecordConfig object MP4配置规则 表8 RecordObsFileAddr 参数 参数类型 描述 bucket String OBS的bucket名称 location String OBS Bucket所在RegionID object String OBS对象路径,遵守OBS Object定义。如果为空则保存到根目录 表9 HLSRecordConfig 参数 参数类型 描述 record_cycle Integer 周期录制时长 单位:秒,最小1分钟(60秒),最大12小时(43200秒)。 如果为0,则使用默认值6小时(21600秒)。 record_prefix String 录制m3u8文件,含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} record_ts_prefix String 录制ts文件名的前缀, 默认{file_start_time_unix}_{file_end_time_unix}_{ts_sequence_number} record_slice_duration Integer 录制HLS时ts的切片时长,非必填。 取值范围:[2,60] 单位:秒 默认值:10 record_max_duration_to_merge_file Integer 录制HLS文件拼接时长,如果流中断超过该时间,则生成新文件。 单位:秒 默认值:0 0:表示流中断就生成新文件。 -1:表示相同的流中断恢复后,继续在30天内的前一个文件保存。 表10 FLVRecordConfig 参数 参数类型 描述 record_cycle Integer 周期录制时长 单位:秒,最小1分钟(60秒),最大6小时(21600秒)。 如果为0,则使用默认值2小时(7200秒)。 record_prefix String 录制FLV文件,含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{file_start_time} record_max_duration_to_merge_file Integer 录制FLV文件拼接时长,如果流中断超过该时间,则生成新文件。如果为0表示流中断就生成新文件。 单位:秒 默认值:0 表11 MP4RecordConfig 参数 参数类型 描述 record_cycle Integer 周期录制时长 单位:秒,最小1分钟(60秒),最大6小时(21600秒)。 如果为0,则使用默认值2小时(7200秒)。 record_prefix String 录制文件含路径和文件名的前缀, 默认Record/{publish_domain}/{app}/{record_type}/{record_format}/{stream}_{file_start_time}/{file_start_time} record_max_duration_to_merge_file Integer 录制mp4文件拼接时长,如果流中断超过该时间,则生成新文件。如果为0表示流中断就生成新文件。 单位:秒 默认值:0 状态码: 400 表12 响应Header参数 参数 参数类型 描述 X-request-id String 此字段携带请求ID号,以便任务跟踪。格式为:request_id-timestamp-hostname(request_id在服务器端生成UUID,timestamp为当前时间戳,hostname为处理当前接口的服务器名称) 表13 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI GET /v1/{project_id}/record/rules 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参考获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 publish_domain 否 String 直播推流域名 app 否 String 流应用名称 stream 否 String 流名称 record_type 否 String 录制类型,如果不填写则查询所有录制类型,包括:CONTINUOUS_RECORD,COMMAND_RECORD。默认CONTINUOUS_RECORD。 CONTINUOUS_RECORD:持续录制,在该规则类型配置后,只要有流推送到录制系统,即触发录制。 COMMAND_RECORD:命令录制,在该规则类型配置后,在流推送到录制系统后,租户需要通过命令控制该流的录制开始和结束。 offset 否 Integer 偏移量,表示从此偏移量开始查询,offset大于等于0 limit 否 Integer 每页记录数,取值范围[1,100],默认值10
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 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信息。
  • 步骤三:配置录制规则 登录 实时音视频 控制台。 在左侧导航栏中,选择“应用管理”,进入“应用管理”页面。 在需要创建录制规则的应用行,单击“配置”,进入录制配置页面。 在“录制规则”区域,单击“添加”,进入添加录制规则页面。 一个应用ID在相同区域仅支持创建一个录制规则。 请您按照实际需求配置录制参数,参数说明如表1所示。 表1 录制参数说明 参数名 描述 存储-桶 存储录制文件的OBS桶。 目前录制文件仅支持存储到华北-北京四的OBS桶中。 区域 OBS桶所在的区域。 存储-路径 存储录制文件的OBS桶路径。 录制格式 录制文件的格式,支持HLS和MP4文件格式。 HLS规则 m3u8命名规则 录制m3u8文件的存储路径和文件的前缀。 默认命名格式: {app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 上述特殊变量的含义如下: app_id:应用ID。 record_format:录制格式。 stream:流名。 file_start_time:文件生成时间。 录制周期 录制时长支持0-720分钟,最小录制周期为1分钟,最大录制周期为12小时,超过12小时,系统将按照命名规则生成新文件。如果录制周期为0,则整个流录制为一个文件。 最大断流合并时长 支持如下三种配置: 断流后生成新文件:是指录制的直播流中断后,会立即生成新的录制文件。 断流后不生成新文件:是指录制的直播流中断后,会和之前录制的文件合并为一个文件。最大断流合并时长为30天。 其他数值:是指录制的直播流中断时间在设置范围内,则和之前录制的文件合并为一个文件,否则,生成新的录制文件。 MP4规则 mp4命名规则 录制mp4文件的存储路径和文件的前缀。 默认命名格式: {app_id}/{record_format}/{stream}_{file_start_time}/{stream}_{file_start_time} 上述特殊变量的含义如下: app_id:应用ID。 record_format:录制格式。 stream:流名。 file_start_time:文件生成时间。 录制周期 录制时长支持1-180分钟,最小录制周期为1分钟,最大录制周期为3小时,超过3小时,系统将按照命名规则生成新文件。 最大断流合并时长 支持如下两种配置: 断流后生成新文件:是指录制的直播流中断后,会立即生成新的录制文件。 其他数值:是指录制的直播流中断时间在设置范围内,则和之前录制的文件合并为一个文件,否则,生成新的录制文件。 单击“确定”,在录制规则列表中会增加一条新的录制规则。 图2 录制规则 您可以在录制规则列表中,根据实际需求选择是否开启自动录制功能。自动录制功能开启后,若该应用下有新创建的房间,则会按照已配置的录制规则自动对该房间中的实时音视频互动过程进行单流录制。 自动录制功能开启后,仅对同一应用下新创建的房间生效,自动录制功能开启前已创建的房间不生效。
  • 步骤五:查看录制文件 录制完成后,您可以在OBS控制台中或通过回调消息查看录制文件。 通过OBS控制台查看录制文件 在OBS管理控制台左侧导航栏选择“对象存储”。 在桶列表中单击存储SparkRTC录制文件的桶,进入“概览”页面。 在左侧导航栏,单击“对象”,查看录制文件信息。 您还可以对录制文件进行下载、分享等操作,具体请参见OBS帮助中心。 通过回调消息查看录制文件 若您设置了录制回调地址,则每生成一个录制文件都将收到录制回调消息。具体录制回调配置方法及消息字段说明请参见配置录制回调。
  • 回调示例 录制文件生成事件回调示例如下。回调消息体字段如表1所示。 { "event_type": "RECORD_FILE_COMPLETE", "stream_name": "mystream", "record_format": "HLS", "download_url": "https://abc-rtc-bucket2.obs.cn-north-4.myhuaweicloud.com/Record/Record/5fcdf5651xxxxxx6f835d0d4.SparkRTC.myhuaweicloud.com/live/continuous_record/hls/mystream_2021-04-28-08-57-07/mystream_2021-04-28-08-57-07.m3u8", "file_size": 26254952, "record_duration": 65, "start_time": "2021-04-28T08:56:57Z", "end_time": "2021-04-28T08:58:02Z", "width": 1280, "height": 720, "obs_location": "http://obs.cn-north-4.myhuaweicloud.com", "obs_bucket": "abc-rtc-bucket2", "obs_object": "Record/Record/5fcdf5651xxxxxx6f835d0d4.SparkRTC.myhuaweicloud.com/live/continuous_record/hls/mystream_2021-04-28-08-57-07/mystream_2021-04-28-08-57-07.m3u8", "app_id": "5fcdf5651xxxxxx6f835d0d4", "job_id": "608196a2fa1xxxxxx515147f32ef463b", "room_id": "room01" }
  • 操作步骤 登录实时音视频控制台。 在左侧导航栏中,选择“应用管理”,进入“应用管理”页面。 在需要创建录制回调的应用行,单击“配置”,进入录制配置页面。 在“回调配置”区域,单击“编辑”,配置回调信息,如图1所示。 图1 添加录制回调地址 回调地址:接收回调信息的服务器地址,仅支持HTTP和HTTPS协议。 回调秘钥:录制回调的鉴权密钥,鉴权串长度范围:[32,64]。录制回调鉴权签名的生成方法,请参考《常见问题》的“如何对录制回调进行鉴权?”章节。