更新时间:2024-04-18 GMT+08:00

配置录制回调

SparkRTC服务提供了录制任务状态回调设置,支持配置HTTP/HTTPS URL,向用户服务器发送POST请求,将录制任务状态信息实时反馈到用户服务器。

回调协议

  • 请求:HTTP POST请求,请求Body的内容为JSON格式。
  • 应答:HTTP STATUS CODE = 200,应答内容为JSON格式,用户可以根据实际需求自定义应答内容。
    示例如下:
    { 
      "status": 1, 
      "result" : "success" 
    }

前提条件

添加应用

操作步骤

  1. 登录实时音视频控制台。
  2. 在左侧导航栏中,选择应用管理,进入“应用管理”页面。
  3. 在需要创建录制回调的应用行,单击“配置”,进入录制配置页面。
  4. 在“回调配置”区域,单击“编辑”,配置回调信息,如图1所示。

    图1 添加录制回调地址
    • 回调地址:接收回调信息的服务器地址,仅支持HTTP和HTTPS协议。
    • 回调秘钥:录制回调的鉴权密钥,鉴权串长度范围:[32,64]。录制回调鉴权签名的生成方法,请参考《常见问题》的“如何对录制回调进行鉴权?”章节。

回调示例

录制文件生成事件回调示例如下。回调消息体字段如表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 消息体字段说明

字段

描述

event_type

通知事件类型。

取值如下:

  • RECORD_NEW_FILE_START:表示开始创建新的录制文件。以下情况会触发该事件:
    • 录制开始,开始创建第一个录制文件。
    • 断流恢复后,若“最大断流合并时长”配置为“断流后生成新文件”,则开始创建新的录制文件。
    • 当前录制时长超过了配置的录制周期,则开始新的录制文件生成。
  • RECORD_FILE_COMPLETE:表示录制文件生成完成。以下情况会触发该事件:
    • 录制时长达到配置的录制周期,则当前录制文件生成完成,并开始新的录制生成。
    • 断流后,若“最大断流合并时长”配置为“断流后生成新文件”,则当前录制文件生成完成,若断流恢复,将开始新的录制文件生成。

stream_name

录制的流名。

record_format

录制格式,支持HLS和MP4格式。

download_url

录制文件在OBS中的下载地址。当“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

说明:

该下载地址禁止用于录制文件的播放。

file_size

文件大小。

单位:Byte。

record_duration

录制文件的时长。

单位:秒。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

start_time

录制文件的开始时间,即接收到第一帧数据的时间,格式为YYYY-MM-DDThh:mm:ssZ,UTC时间。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

end_time

录制文件的结束时间,格式为YYYY-MM-DDThh:mm:ssZ,UTC时间。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

width

录制文件分辨率的宽。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

height

录制文件分辨率的高。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

obs_location

存储录制文件的OBS桶所在区域。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

obs_bucket

存储录制文件的OBS桶。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

obs_object

OBS桶存储录制文件的路径。

“event_type”“RECORD_FILE_COMPLETE”时,携带该字段。

app_id

应用ID。

job_id

录制任务编号,可以用于修改、查看或停止录制任务。

room_id

房间ID。

detail_message

录制任务状态描述信息。