配置录制回调
直播服务提供了录制文件生成状态回调设置,支持配置HTTP/HTTPS URL,向用户服务器发送POST请求、消息体JSON格式,将文件生成事件信息实时反馈到用户服务器。
操作步骤
- 登录视频直播控制台。
- 在左侧导航栏中,选择 ,进入域名管理页面。
- 在需要创建录制回调的推流域名行,单击“管理”。
- 在左侧导航树中,选择“模板配置 > 录制配置(新版)”,进入录制配置页面。
- 单击“新建回调配置”,弹出“添加回调配置”对话框。
设置回调地址,如图1所示,回调参数说明请参见表1。
表1 录制回调参数说明 参数
说明
回调地址
回调地址中不能携带消息头和参数,仅支持HTTP/HTTPS协议。推荐使用HTTPS协议。
回调类型
回调消息的类型,包含如下分类:
- 录制文件生成完成
- 录制开始
- 创建新的录制文件
- 录制结束
- 录制失败
各回调类型的详细说明请参见表2。
鉴权方式
回调消息中的加密内容会根据选择的不同鉴权方式而有所不同。MD5方式可能存在安全风险,推荐使用HMACSHA256方式。
- MD5方式:MD5(key + auth_timestamp)
- HMACSHA256方式:HMACSHA256(auth_timestamp + event_type + publish_domain + app + stream + download_url + play_url,key)
鉴权密钥
鉴权key值。支持自定义设置,由32位的字母和数字组成。
修改/删除录制回调配置
录制回调配置完成后,您还可以根据实际需要进行如下操作。
回调示例
录制文件生成事件回调示例如下。回调消息体字段如表2所示。
{ "project_id": "70b76xxxxxx34253880af501cdxxxxxx", "job_id": "dc0a1773-0cef-xxxx-xxxx-9a38fdb095d2", "task_id": "51126d0ebe94b1da00d2e21a10xxxxxx", "event_type": "RECORD_FILE_COMPLETE", "publish_domain": "push.example.com", "app": "live", "stream": "mystream", "record_format": "HLS", "download_url": "https://obs.cn-north-4.myhuaweicloud.com/live/record-xxxx-mystream-1589967495/record-push.example.com-live-mystream-1589967495.m3u8", "asset_id": "1a0d8e9bfaexxxxxxbe5021e62aa1e96", "file_size": 3957964, "record_duration": 120, "start_time": "2020-03-08T14:10:25Z", "end_time": "2020-03-08T14:12:25Z", "width": 1280, "height": 720, "obs_location": "https://obs.cn-north-4.myhuaweicloud.com", "obs_bucket": "mybucket", "obs_object": "live/record-xxxx-mystream-1589967495/record-hwpublish.myun.tv-live-mystream-1589967495.m3u8", "auth_sign": "4f97f46759axxxxxx7ad21e9935dc175", "auth_timestamp": 1583676745 }
字段 |
描述 |
---|---|
project_id |
项目ID。 |
job_id |
用于标识同一个文件。当“event_type”为“RECORD_NEW_FILE_START”或“RECORD_FILE_COMPLETE”时,携带该字段。 |
task_id |
录制任务ID,用于唯一标识一个录制任务。 |
event_type |
消息类型。 取值如下:
|
publish_domain |
直播推流域名。 |
app |
应用名。 |
stream |
录制的流名。 |
record_format |
录制格式,支持HLS、FLV和MP4格式。 |
download_url |
录制文件的下载地址。当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。
说明:
使用该下载地址用于视频播放无法保证播放效果。 |
asset_id |
用于标识一个录制文件。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
file_size |
文件大小。 单位:Byte。 |
record_duration |
录制文件的时长。 单位:秒。 |
start_time |
录制文件的开始时间,即接收到第一帧数据的时间,格式为yyyy-mm-ddThh:mm:ssZ。 当“event_type”为“RECORD_FILE_COMPLETE”时,携带该字段。 |
end_time |
录制文件的结束时间,格式为yyyy-mm-ddThh:mm:ssZ。 当“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”时,携带该字段。 |
auth_sign |
事件通知签名。当配置了“鉴权密钥”时,携带该字段。
其中,key为鉴权密钥值。 |
auth_timestamp |
事件通知签名过期UNIX时间戳。当配置了“鉴权密钥”时,携带该字段。 格式为十进制的UNIX时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。 若消息通知中的auth_timestamp值所指定的时间已经过期,则此消息通知无效,进而防止网络重放攻击。 |
error_message |
录制失败的描述信息。 当“event_type”为“RECORD_FAILED”时,携带该字段。 |