浅谈
媒体处理,在通过工作流转码时可以通过给 pipeline 绑定 mns 消息通知或者队列方式,将转码成功的结果投递给 mns ,mns 用户可以通过创建一个主题的方式,订阅 mts 投递过来的消息,然后通过绑定的 url ,通知用户的接口,将消息投递给用户的接口地址。
mns 主题创建方式
创建一个订阅
MTS 配置
配置好 管道 ID,并且绑定好 mns 的消息通知方式
创建工作流指定管道
上述配置完整后,工作流会检测 input bucket 有增量视频文件出现后就会触发工作流转码,将转码完成的文件输出到绑定的 bucket。
消息通知内容
媒体处理转码成功,会投递消息给 mns ,关于消息的数据结构可以消息的字段含义,请看下以下文档:
- 消息体结构
{
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Name": "Act-7",
"Type": "Report",
"State": "Success",
"MediaWorkflowExecution": {
"Name": "ConcurrentSuccess",
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Input": {
"InputFile": {
"Bucket": "inputfirst",
"Location": "oss-test",
"Object": "mediaWorkflow/ConcurrentSuccess/01.wmv"
},
"UserData":"test"
},
"State": "Success",
"MediaId": "2be491ab4cb6499cd0befe5fcf0cb670",
"ActivityList": [
{
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Name": "Act-1",
"Type": "Start",
"State": "Success",
"StartTime": "2016-03-15T02: 53: 41Z",
"EndTime": "2016-03-15T02: 53: 41Z"
},
{
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Name": "Act-2",
"Type": "Transcode",
"JobId": "f34b6d1429dd491faa7a6c1c8f905285",
"State": "Success",
"StartTime": "2016-03-15T02: 53: 43Z",
"EndTime": "2016-03-15T02: 53: 47Z"
},
{
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Name": "Act-3",
"Type": "Transcode",
"JobId": "888ac3903ecf4898b9d790cf7f1d969e",
"State": "Success",
"StartTime": "2016-03-15T02: 53: 44Z",
"EndTime": "2016-03-15T02: 53: 48Z"
},
{
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Name": "Act-5",
"Type": "Snapshot",
"JobId": "c14150be33304825a5d67cd5364c35cb",
"State": "Success",
"StartTime": "2016-03-15T02: 53: 44Z",
"EndTime": "2016-03-15T02: 53: 45Z"
},
{
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Name": "Act-6",
"Type": "Snapshot",
"JobId": "8c30c30ca7324286afda1a9a1b14d03c",
"State": "Success",
"StartTime": "2016-03-15T02: 53: 48Z",
"EndTime": "2016-03-15T02: 53: 49Z"
},
{
"RunId": "8f8aba5a62ab4127ae2add18da20b0f2",
"Name": "Act-7",
"Type": "Report",
"State": "Success",
"StartTime": "2016-03-15T02: 53: 49Z",
"EndTime": "2016-03-15T02: 53: 49Z"
}
],
"CreationTime": "2016-03-15T02: 53: 39Z"
}
}
注意:
- 回调的消息中只有 input bucket 文件的存储地址,用户要想要完成的 url 需要自己 拼下。
- 回调消息中没有输出的 bucket 完整 url ,用户要根据回调消息中的 jobid 然后调用 QueryJobList 接口查询转码的状态信息,包含了转码后的输出 bucket 的地址和详细的转码信息。
案例:
案例一:
我们现在需要媒体处理的消息通知功能,在消息服务里创建了一个主题,再给管道绑定消息通知的时候 看不到刚才创建的主题
分析:
- 用户先确认下,mns 配置的账号和 mts 的账号是否都是一个主账号下的。
- mns 配置的 region 和 mts 是否一致。
- 在 mts 控制台上刷新下控制台然后再切换到其他 region 再切换回来看下是否解决,如果此法解决说明和控制台显示有关,可以提个工单跟进下。