天天看點

媒體處理 MTS-工作流

作者:張醫博

基礎分析

在使用媒體處理(MTS) 産品的工作流轉碼時,我們先補充基礎認知。

一句話概括,工作流就是一套模版在特定條件自動觸發對視訊進行處理的流程,那我們先要知道類型的視訊檔案支援工作流。

  • 視訊:3gp, asf, avi, dat, dv, flv, f4v, gif, m2t, m3u8, m4v, mj2, mjpeg, mkv, mov, mp4, mpe, mpg, mpeg, mts, ogg, qt, rm, rmvb, swf, vob, wmv, webm。
  • 音頻:aac, ac3, acm, amr, ape, caf, flac, m4a, mp3, ra, wav, wma, aiff。
  • 另類:沒有字尾的檔案也會觸發工作流,觸發後再判斷是否在上述的視訊封裝格式内。

也就是說隻有上述幾個條件的音視訊才能觸發工作流,除此之外是不會觸發工作流的。工作流是和 OSS bucket 關聯的,常用在有新檔案上傳到 OSS 時觸發工作流的轉碼。

案例分析 NoneExistFileURL

背景:

該案例是 Z 某調用 QueryMediaListByURL 接口時,傳回的的 medialist 不存在,NoneExistFileURL 是 OSS 的存儲位址。

媒體處理 MTS-工作流

QueryMediaListByURL:

當上傳檔案到 OSS 觸發工作流轉碼時,如果轉碼完成,可以通過 QueryMediaListByURL 接口查詢轉碼完成後的媒體資訊。這個接口隻針對工作流觸發的轉碼任務才能查詢。

或者存量視訊可以讓使用者先調用 AddMedia 添加媒體資訊,然後在調用 QueryMediaListByURL

分析:

-該案例 Z 某沒有擷取到 MediaList 内容,無非就兩個原因:

  • 用戶端不是觸發工作流進行的轉碼,而是 SubmitJobs 進行的轉碼。
  • 配置的工作流沒有觸發。

結論:

經過确認是通過工作流轉碼,但是為什麼沒有觸發呢?檢視源檔案才發現因為字尾是 QuickTime 的,不在我們上述支援的字尾回報内,後續将字尾去掉就觸發流轉碼。

http://xxxx.oss-cn-hangzhou.aliyuncs.com/m3u8MultibitrateIn64/d13f51ca-de4b-11e8-a0b9-112a0a.quicktime

案例分析 MPS 上雲

用戶端開發的 APP 将檔案上傳到 OSS ,調用轉碼服務後,将轉碼完成後傳回一個 CDN 位址讓用戶端 APP 可以播放。

整個架構中涉及到四種産品 OSS、 CDN、 MPS 、MNS ,如果完整的串聯起來提供高性能服務,由我給大家通過兩張圖介紹一下。

媒體處理 MTS-工作流

圖中完整的将所有産品串聯起來,關鍵緩解是視訊上傳、視訊轉碼兩個時間耗時。建議幾個注意點:

  • app 要有完整的上傳記錄,包括 OSS requestID ,出現問題時便于讓阿裡雲排查。
  • 客戶的業務伺服器提供回調的接口要記錄日志,并且保證網絡良好,能和 mns 正常通信。
  • 上傳的視訊一定遇見做好字尾判斷和封裝格式判斷。
  • 第五步拼裝用戶端播放的 CDN 位址,客戶可以通過 QueryMediaList 的接口,傳入 mediaID 擷取轉碼完成的輸出位址檔案後,将域名替換為 CDN 域名即可傳給 APP 播放。
  • MPS(MTS) 會投遞什麼資訊給 mns 可以參考, https://help.aliyun.com/knowledge_detail/50627.html 有詳細的回調内容。

案例:工作流無法自動觸發進行轉碼

【場景】:

使用者設定流工作流自動觸發轉碼,但實際效果工作流沒有被觸發;

【分析】

  1. )檢查 工作流的輸入源(OSS bucket)是否有檔案上傳,如果沒有則不處罰,有的話繼續排查
  2. )檢查客戶工作流是否設定了智能分析模版,如果設定了智能分析,轉碼要采用預置智能模版進行轉碼,因為智能分析的前置條件是動态參數轉碼不能使用靜态的模版
  3. )與使用者确認是否設定了手動觸發轉碼 連結