天天看點

【視訊點播最佳實踐】視訊點播播放異常排查

阿裡雲視訊點播是集音視訊采集、編輯、上傳、自動化轉碼處理、媒體資源管理、分發加速、視訊播放于一體的一站式音視訊點播解決方案。但是對于使用者來說經常遇到的問題即是視訊點播中的視訊如何對外提供服務,并且當播放出現異常時如何進行排查呢?本文主要從該方面為大家介紹視訊點播的播放方式和異常排查。

視訊點播提供了三種方式進行播放分别适用于不同的場景。使用者可以根據自己的使用場景選擇合适的方法進行播流,下面依次介紹該三種播放方式:

視訊點播的使用是存儲在産品統一的 bucket 中,是以與 oss 中的視訊都可以直接簡單擷取 url 進行通路方式不同。産品統一的并不屬于使用者自己,是以使用者是無法通過自己賬号的 accesskeyid 和 accesskeysecret 擷取播放的權限。

注意:

對于所有狀态不是“正常”狀态的視訊資源将無法調用該接口(例如:轉碼中、稽核中等執行狀态),否則将直接抛出錯誤:forbidden.illegalstatus : status of the video is illegal。

對于内容加密的視訊通過該接口擷取得到的播放 url 是不需要解密播放并且可以直接下載下傳得到該視訊,是以對于内容加密的視訊并不适合與使用 url 的方式進行播放。

由于後續的兩種方案都僅能夠支援視訊點播官方提供的播放器,如果需要使用第三方的播放器插件的話隻能夠使用本方法播放。

播放 url 在沒有開啟 url 鑒權的情況下擷取的 url 是永久可以通路的,但是在開啟鑒權後擷取的 url 是帶有 auth_key 參數的,對應的 url位址也是存在有效時間的,超過有效時間将出現 403 的錯誤。

播放鑒權是視訊點播在阿裡雲 ak 安全認證基礎上的二次鑒權機制。播放鑒權的機制是根據使用不同的終端裝置播放器的 sdk 提供了不同的鑒權 key,然後使用者可以使用賬号的 accesskeyid 和 accesskeysecret 結合對應用戶端播放鑒權進行播放即可。我們分别提供了html5、flash、android和ios不同平台的鑒權,檢視方法如圖1所示。

【視訊點播最佳實踐】視訊點播播放異常排查

                                                                        圖 1. 點播播放鑒權示意圖

對應的web端執行個體代碼請參考如下demo:

上述的 accesskeyid 和 accesskeysecret 推薦使用 ram 子賬号進行設定,因為該頁面是展示在前端的應用或者頁面中,需要進行更細粒度的安全控制,僅需要給該子賬号賦權 aliyunmtsplayerauth 即可。

上述方式由于多個參數均是固定參數并且沒有時間限制導緻可能出現安全風險,是以建議盡量避免使用本方法。

上述的方法可以同時配置 apikey 和 flashapikey 的話将可以使用相容模式同時在 html5 和 flash 模式下播放。

播放憑證方式播放是通過 vid 和臨時播放憑證(playauth)進行播放的,由于 playauth 是伺服器端根據accesskeyid 和 accesskeysecret 擷取的,并且是有 100 秒的有效時間的,是以較為有效的保護資源的安全性的。具體的 web 端播放的 demo 如下:

使用上述播放方式播放點播中的資源時經常會出現無法正常播放的情況,建議我們可以考慮如下的步驟逐個排查其無法播放的詳細原因并修改。

域名解析導緻播放異常

視訊點播在開通服務時即需要使用者綁定自己的域名到視訊點播服務中。而視訊點播中所有的視訊都是需要通過該域名提供連結進行播放的,是以該域名的解析配置正确将是能夠正确播放的第一步。

視訊點播的域名管理截圖如圖 2 所示。視訊點播是可以添加多個域名在視訊點播服務中的,但是同一時間啟用的僅能夠有一個域名。在配置完域名後需要使用者到 dns 提供商出配置該域名解析到視訊點播提供的 cname 位址上才可以正常通路的。

【視訊點播最佳實踐】視訊點播播放異常排查

                                                                        圖 2. 點播域名管理示意圖

cname 記錄和其他的 a 記錄是相沖突的,是以某個域名解析到視訊點播的話是無法再解析到其他的伺服器的,是以這裡建議使用還沒有使用的子域名後添加并設定解析,而不要使用綁定在站點上的主域名。

2、dns 解析配置截圖請參考圖 3,其中記錄類型是需要選擇“cname”,主機記錄填寫子域名的記錄值,例如圖 2 中的子域名為 vod ,那麼這裡我們應該填寫的即是 vod 。記錄值填寫視訊點播提供的完整的 cname 域名,如圖 2 中的 vod.xxxx.com.danuoyi.tbcache.com。

【視訊點播最佳實踐】視訊點播播放異常排查

                                                                        圖 3. dns解析示意圖

防盜鍊設定導緻播放異常

在設定完成上述解析後會可以通過視訊點播控制台的播放功能測試是否正常的。當出現控制台播放正常,但是通過上述方法播放測試仍然有問題時刻檢視安全防護設定是否禁止了通路。

防盜鍊是通過 http 請求頭中的 referer 字段來控制通路來源是否允許,具體的設定請參考圖 4,可以分别選擇 referer 白名單或者 referer 黑名單,兩者僅能夠同一時間生效一種。當設定了之後就會僅允許或者限制某些 referer 頭通路。

【視訊點播最佳實踐】視訊點播播放異常排查

                                                                        圖 4. 點播防盜鍊示意圖

圖5的示例即是被referer防盜鍊限制的結果。

【視訊點播最佳實踐】視訊點播播放異常排查

                                                                        圖 5. 防盜鍊攔截示意圖

播放憑證選擇錯誤導緻播放異常

當使用上述第二種播放方式時需要根據對應的播放器終端裝置選擇對應的播放憑證,如果設定錯誤的話将會導緻無法播放,使用者需要根據用戶端選擇正确的播放憑證。另外針對于 web 播放器的相容模式可以同時設定 apikey 和flashapikey 參數保證同時在 flash 和 html5 播放正常。

4)playauth 逾時導緻播放異常

當采用上述第三種播放方式播放時需主要擷取 playauth 的業務邏輯,由于playauth 僅有 100 秒的有效時間,超過該有效時間後将導緻新發起的播放請求無法播放(但是不影響正在播放的視訊),是以業務端需要在少于 100 秒更新一次 playauth 。

繼續閱讀