天天看點

媒體處理-工作流消息通知

淺談

媒體處理,在通過工作流轉碼時可以通過給 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 再切換回來看下是否解決,如果此法解決說明和控制台顯示有關,可以提個工單跟進下。