本文主要介紹當播放異常時自主排查異常根因的定位思路及排查步驟等。
排查思路
導致視頻播放異常的原因有多種,定位問題時,可首先分析異常產生是否呈現一定的分布特徵。若異常產生具有明顯分布特徵時,可按下述表格中歸納出來的可能原因進行排查定位問題;若異常產生無明顯分布特徵時,則可以按端(終端裝置)、流(音視頻流)、網(網路節點)的思路逐步定位問題;若經過自主排查最終無法定位問題,您可以提供異常資訊擷取阿里雲支援人員。
異常呈現分布特徵:
異常分布特徵
異常產生可能原因
終端使用者集中在某些ISP或是地區
可能是當地電訊廠商網路、CDN地區調度問題導致。
終端裝置的作業系統呈現集中特徵
可能是SDK在不同平台之間的實現差異、系統相容性問題導致。
終端裝置品牌或機型呈現集中特徵
可能是裝置相容性問題導致。
特定音視頻檔案呈現集中特徵
可能是音視頻檔案的編碼、CDN預熱或是業務存取原則問題導致。
異常無明顯分布特徵:異常產生原因比較複雜或被資料量所掩蓋,需要從內容到人的業務鏈路重要節點逆向排查,逐步定位問題節點以追溯原因。
步驟一:排查端
終端裝置相容性
首先判斷當前音視頻流的協議是否為作業系統與應用環境所支援,若不支援,請做轉碼處理,轉碼操作請參見轉碼推薦。播放器SDK支援的音視頻協議及編碼格式如下。
Native App
作業系統 | 視頻編碼格式 | 視頻協議 | 音頻編碼格式 |
Android |
|
|
|
iOS | |||
Windows | |||
macOS | |||
Linux |
Web
若音視頻協議滿足下述Web端相容要求,請確認您已配置了HTTPS認證和跨域訪問,相關操作請參見HTTPS安全加速設定、配置跨域訪問。
作業系統 | 視頻編碼格式 | 視頻協議 | 音頻編碼格式 |
Android | H.264 |
|
|
iOS | H.264 |
說明 不支援FLV和MPEG-DASH。 | |
H.265 |
| ||
Windows | H.264 | ||
macOS | H.264 |
| |
H.265 |
|
Android裝置部分瀏覽器需要MSE拓展才能支援HLS播放,具體情況如下:
Android裝置瀏覽器 | HLS支援情況 |
微信 | 支援 |
DingTalk | 支援 |
UC/夸克 | 支援 |
QQ瀏覽器 | 支援 |
Chrome | MSE拓展支援 |
華為瀏覽器 | MSE拓展支援 |
OPPO瀏覽器 | 支援 |
vivo瀏覽器 | 支援 |
小米瀏覽器 | MSE拓展支援 |
播放器SDK相容性
當上述終端裝置相容性滿足要求時,可以通過使用其他播放器(非阿里雲播放器)播放視頻輔助排查是否為播放器SDK相容性問題。
若其他播放器播放正常,則可能是阿里雲播放器SDK的相容性問題導致,此時您可以擷取支援人員。
若其他播放器播放異常,則需要從流、網定位問題原因。
步驟二:排查流
排除了上述可能原因後,可以對音視頻流進行重新轉碼後再次嘗試播放,若轉碼後播放正常,則說明可能是原有音視頻流編碼不規範導致播放異常。
當播放MP4視頻起播慢或MOV視頻播放失敗時,可能由於源視頻的moov(音視頻資料索引)在mdat(音視頻資料)之後造成,可以通過轉碼源視頻將moov移到mdat之前,以加快播放解析。
通過如下命令檢測moov位置:
# 源視頻地址可以是本地檔案地址也可以是線上URL,例如:http://pla****.alicdn.com/video/aliyunmedia.mp4 ffmpeg -v trace -i "源視頻地址" 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'
正常情況下,moov在mdat之前,如下圖所示。
異常情況下,moov在mdat之後,如下圖所示。
通過如下命令或ffprobe命令列工具(工具地址)可以查詢源檔案的音頻、視頻編碼格式等資訊,可以用於分析產生異常的視頻是否存在某類規律或特徵:
ffprobe "input.mp4"
或ffprobe "源視頻地址"
轉碼推薦
轉碼輸出:建議轉為H.264的MP4或HLS視頻流。
轉碼方式:建議使用以下阿里雲服務或本地工具。
分類
服務名稱/工具名稱
說明
阿里雲服務
ApsaraVideo for VOD
ApsaraVideo for VOD提供的音視頻轉碼功能支援完善的轉碼和轉封裝能力,以滿足豐富的媒體格式轉換需求,支援普通轉碼、窄帶高清1.0轉碼、窄帶高清2.0轉碼、原畫轉碼。詳細內容請參見音視頻轉碼。
ApsaraVideo for Media Processing
ApsaraVideo for Media Processing提供的媒資轉碼功能可以將多媒體資料轉碼成適合在全平台播放的格式,支援普通轉碼、窄帶高清1.0轉碼、窄帶高清2.0轉碼、倍速轉碼、解析度倍增轉碼,適用於視頻源檔案儲存體在OSS自有Bucket中的使用者。詳細內容請參見媒資轉碼。
智能媒體服務
智能媒體服務提供點播轉碼和即時轉碼能力,支援對儲存在OSS或VOD中的音視頻轉碼,並支援對直播流進行轉碼。
本地工具
FFmpeg Codecs
下載地址:FFmpeg Codecs
步驟三:排查網
排除了上述可能原因後,可以通過對網路傳輸進行檢查以定位播放異常原因。
確認終端裝置網路是否正常。
Wi-Fi:當前網路是否穩定可訪問?下行網速 ≥ 碼率?
可以使用測速網擷取下行網速,若下行網速< 碼率則會出現載入失敗或播放卡頓。
移動網路:當前網路是否為4G、5G等高速網路?網路訊號強度如何?
弱網條件下網速可能不滿足視音視頻載入要求。
確認是否啟用了CDN加速。
確認視頻來源站點與終端使用者分布地區。
若視頻來源站點使用中國內地的服務地區,而終端使用者處于海外,則可能出現明顯的卡頓問題。此時,建議根據終端使用者分布情況選擇對應的服務區部署視頻來源站點,以改善加速效果。
確認觀看時間段。
若特定時間段同時觀看人數過多,則可能出現來源站點限流造成播放卡頓的問題。
相關文檔
若您按照上述流程進行排查後依舊無法定位問題原因,可通過查看下述文檔,看是否有相同的案例及解決方案:
擷取支援人員
若您按照上述流程仍無法解決您的問題,您可以提交工單處理。關於如何提交工單,請參見聯絡我們。
擷取支援人員時,建議您提供以下資訊以便提升支援人員效率。
資訊欄位 | 樣本 | 詳細說明 |
系統與裝置平台 | Android 9,小米 | 需提供發生問題的裝置品牌及作業系統型號等資訊,例如:Android幾+品牌、iOS幾、Windows幾、Mac/Linux幾。 |
SDK及版本號碼 | Android SDK 5.4.8.0 | 需說明使用的播放器SDK及SDK版本號碼,播放器SDK包括:Web SDK、Android SDK、iOS SDK、Flutter SDK、Windows SDK。 |
視頻源 | https://xxxxxx.m3u8 | 需提供可複現問題的視頻源地址或視頻檔案。 |
問題描述+日誌+錄屏 | 2022年08月29日,16:40開始播放,直到17:00左右出現卡頓,日誌附件如下。 | 需詳細描述問題發生的步驟及現象,最好可具體到詳細的時間點。對於可複現的問題,需要提供完整複現步驟的日誌(Android和iOS端可提供日誌,日誌擷取方式請參見Android端擷取問題日誌或iOS端擷取問題日誌),必要時可以附上錄屏的資訊。 |
問題分布特徵 | 只在Android裝置上有這個問題,iOS裝置上不存在。問題必現。 | 請說明問題發生是否具備分布特徵及問題複現的規律及頻率。例如:問題發生集中在某個視頻源、某個裝置平台、某個版本號碼等,問題發生為偶現或必現等。 |