本文主要介紹當播放異常時自主排查異常根因的定位思路及排查步驟等。
排查思路
導致視頻播放異常的原因有多種,定位問題時,可首先分析異常產生是否呈現一定的分布特征。若異常產生具有明顯分布特征時,可按下述表格中歸納出來的可能原因進行排查定位問題;若異常產生無明顯分布特征時,則可以按端(終端設備)、流(音視頻流)、網(網絡節點)的思路逐步定位問題;若經過自主排查最終無法定位問題,您可以提供異常信息獲取阿里云技術支持。
異常呈現分布特征:
異常分布特征
異常產生可能原因
終端用戶集中在某些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支持情況 |
微信 | 支持 |
釘釘 | 支持 |
UC/夸克 | 支持 |
QQ瀏覽器 | 支持 |
Chrome | MSE拓展支持 |
華為瀏覽器 | MSE拓展支持 |
OPPO瀏覽器 | 支持 |
vivo瀏覽器 | 支持 |
小米瀏覽器 | MSE拓展支持 |
播放器SDK兼容性
當上述終端設備兼容性滿足要求時,可以通過使用其他播放器(非阿里云播放器)播放視頻輔助排查是否為播放器SDK兼容性問題。
若其他播放器播放正常,則可能是阿里云播放器SDK的兼容性問題導致,此時您可以獲取技術支持。
若其他播放器播放異常,則需要從流、網定位問題原因。
步驟二:排查流
排除了上述可能原因后,可以對音視頻流進行重新轉碼后再次嘗試播放,若轉碼后播放正常,則說明可能是原有音視頻流編碼不規范導致播放異常。
當視頻為MP4格式時,如遇起播速度慢等播放異常時,可能由于源視頻的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視頻流。
轉碼方式:建議使用以下阿里云服務或本地工具。
分類
服務名稱/工具名稱
說明
阿里云服務
視頻點播
視頻點播提供的音視頻轉碼功能支持完善的轉碼和轉封裝能力,以滿足豐富的媒體格式轉換需求,支持普通轉碼、窄帶高清1.0轉碼、窄帶高清2.0轉碼、原畫轉碼。詳細內容請參見音視頻轉碼。
媒體處理
媒體處理提供的媒資轉碼功能可以將多媒體數據轉碼成適合在全平臺播放的格式,支持普通轉碼、窄帶高清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設備上不存在。問題必現。 | 請說明問題發生是否具備分布特征及問題復現的規律及頻率。例如:問題發生集中在某個視頻源、某個設備平臺、某個版本號等,問題發生為偶現或必現等。 |