在使用智能媒体服务媒资上传、媒体处理、云剪辑等服务时,您可通过设置回调事件及时获取任务处理进展和状态,以便进行其他业务操作。通过阅读本文,您可以了解回调方式和回调事件的基本信息。

回调方式说明

简介

智能媒体服务支持HTTP请求和MNS队列两种回调方式获取事件通知,如下所示:

  • HTTP请求:被动接收IMS事件通知。您需要部署一个HTTP服务接收回调消息,并在控制台上或调用OpenAPI时配置回调URL,当事件产生时,IMS服务端会向回调URL发起HTTP POST请求,消息内容将通过HTTP Body送达。
  • MNS队列:主动向IMS拉取事件通知。您需要授权IMS访问消息服务MNS,并在MNS中创建队列或使用已有队列,然后在控制台上或调用OpenAPI时配置MNS队列名称,当事件产生时,IMS服务端会将回调内容写入该队列,您需要到MNS中查看接收消息。

优缺点

对比项HTTP请求MNS队列
可靠性如果HTTP消息接收服务异常,例如崩溃或重启等,消息可能会丢失。只要配置正常,消息回调基本都能成功,可靠性更高。
安全性任何HTTP方式都可回调该地址,但可配合回调鉴权过滤非法请求,以增强安全性,详情请参见回调鉴权仅授权方能读写消息队列,安全性更高。
便捷性接入更为方便,只需简单部署消息接收服务。需要额外开通和配置MNS,并且需要开发和部署消费消息的程序。

回调协议

回调方式描述
HTTP请求
  • 请求:HTTP POST请求,请求包内容为JSON字符串。关于消息体示例和参数字段详细说明,请参见事件列表
  • 应答:IMS会忽略应答包内容。
MNS队列队列接收消息内容为JSON字符串。关于消息体示例和参数字段详细说明,请参见事件列表

回调判断与重试

回调方式回调是否成功回调重试说明
HTTP请求发起HTTP请求时,如果接收服务响应的HTTP状态码为200,则视为回调成功;如果状态码为其他或响应时间超过3秒出现超时,则视为回调失败。IMS会忽略响应的包体内容,仅以HTTP状态码判断回调是否成功。如果配置异常,例如回调地址错误、消息接收服务异常等,会导致消息回调失败,IMS会间隔1秒继续重新回调2次,如果总回调次数超过3次后仍然失败,会丢弃该消息。
MNS队列发起MNS队列回调时,只要消息写入MNS队列成功,则视为回调成功,否则视为失败。如果配置异常,例如未授权IMS访问消息服务MNS、队列地址不是公网或队列名称错误等,会导致消息写入MNS失败,IMS会间隔1秒继续重新回调2次,如果总回调次数超过3次后仍然失败,会丢弃该消息。
说明 建议您使用MNS队列回调,只要配置正常,消息回调基本都能成功,可靠性更高。

回调事件类型

表 1. 媒资上传
事件描述
FileUploadComplete音视频上传完成
UploadByURLCompleteURL上传完成
ImageUploadComplete图片上传完成
AttachedMediaUploadComplete辅助媒资上传完成
RegisterStreamComplete媒体流注册完成
StreamUploadComplete媒体流上传完成
UploadStreamByURLComplete媒体流URL上传完成
表 2. 媒资管理
事件描述
CreateAuditComplete人工审核完成
RegisterMediaComplete媒资注册完成
DeleteMediaComplete媒资删除完成
MediaBaseChangeComplete媒资基础信息变更完成
表 3. 工作流
事件描述
WorkflowTaskComplete工作流处理结果
表 4. 点播媒体处理
事件描述
VideoAnalysisComplete音视频分析完成
SnapshotComplete视频截图完成
DynamicImageComplete视频动图完成
TranscodeComplete子任务转码完成
TranscodeParentComplete主任务转码完成
表 5. 视频AI
事件描述
AIMediaAuditCompleteAI审核完成
AIProduceCompleteAI生产完成
表 6. 智能剪辑
事件描述
ProduceMediaComplete媒体合成完成
表 7. 实时媒体处理
事件描述
LiveRecordFileCreated直播文件生成
LiveRecordTaskStatus直播录制状态
LiveSnapshotFileCreated直播截图回调