QOS(即Quality of Service,服務質量)主要指網絡環境下服務滿足用戶的程度,在視頻服務的語境下也可認為是Quality of Streaming,即流媒體服務的質量。通常,QOS可以由一系列指標表達,如傳輸的速度、響應時間、發送順序、正確率等。就視頻服務來說,QOS由多項約定俗成的技術指標構成,包括播放成功率、錯誤率、Re-buffer(卡頓)次數和時間、起始時間、快進響應時間、視頻碼率、延遲等。
通行的QOS指標大致可分為兩類:
一類用于衡量用戶可在多大概率上得到服務,如播放成功率和錯誤率;
另一類描述了用戶所獲取到服務的水平,如卡頓次數、時間、起始時間、快進時間、視頻碼率和延遲
下面是QOS指標定義(圖片來自Conviva官網)
- 播放成功率:描述了用戶在嘗試播放視頻時啟動成功的比率,可由所有成功開始播放的次數除以用戶嘗試的總數,常見于后端視頻失效的情形
- 播放錯誤率:放過程中至少單個視頻或音頻幀被播放的情況下發生的錯誤,可能的原因包括播放器崩潰、硬件關閉、網絡斷開等,需要用戶干預才能恢復播放
- 播放片頭短片、視頻或交互式廣告時導致的失敗:這些可能由第三方服務導致,影響用戶體驗,同樣應予以監控以及調試改進
- 視頻卡頓:播放器無法即時得到流媒體傳輸的視頻片段而需等待下載的情形。卡頓可能短促地發生,也可能持續很長時間。卡頓指標既包含單位時間內的卡頓次數也包含卡頓累計時間的維度,優化卡頓時間的常見的方式是利用CDN和碼率自適應算法。
- 視頻卡頓的一類特殊情形是起始播放時的卡頓,通常計算從用戶點擊播放到第一幀呈現在屏幕上為止的時間長度,因為獲取最初可用的視頻片段需要一定時間,包括后臺服務準備資源、下載視頻開始的片段、初始化軟硬件等。
- 優化起始時間可以通過將起始視頻片段預先置于CDN的邊緣節點,降低起始碼率,增加播放器初始化并行度,預先建立網絡連接等方式。此外,播放器還可以通過插入片頭動畫,持續播放快進前的視頻片段直至快進后的視頻幀準備好等手段降低用戶的主觀等待時間。
- 平均碼率:用于反映視頻的清晰程度,不同編碼器,甚或不同編碼參數將導致同樣水準的視頻碼率相差許多,因此該指標主要用于評估流媒體服務的質量,未能完全代表觀看感受
- 節目延遲時間:計算標準是節目應播出的時間與實際屏幕上播放時間的間隔。帶來延遲的除軟件處理速度、網絡傳輸速度外,編碼器,源服務器及CDN服務器帶來的緩存隊列,播放器中解碼器和渲染硬件均會引入大小不同的延遲。
當定義了關鍵的QOS指標與優先級之后,視頻服務可以通過傳統的方式(如本地環境、測試環境測試的方式)進行初始的驗證,使用如Evalvid這樣的視頻質量評價工具,配合NetworkSimulator類的網絡模擬工具,可用于小規模測試,提供丟包率、延遲、抖動等底層指標。
在真實的在線視頻服務中,大多數由用戶不同地理位置、設備種類、軟件版本、運行環境等導致的問題很難在開發環境中復現。在線視頻服務通常在各個客戶端平臺上實現對QOS狀況的監測,通過SDK發送回,并由后端服務進行折算和統計。
當服務的用戶量達到一定程度時,需要大數據技術區分實時和批量數據,并在存儲之前進行預處理。QOS數據由后臺服務整合后將被應用于圖表呈現、統計報告、分析優化、監控報警等用途,是產品、開發、運維、數據分析等團隊依靠的基礎。
為更好地分析特定問題,收集關于某一用戶播放過程的全部信息并按時序加以呈現,可以有效地幫助理解因果關系,信息將包括用戶行為、執行時間、下載計時、碼率切換記錄、錯誤類型、CDN節點位置、服務器日志甚至一些計算的中間結果,將可有效地推斷例如開始播放較為緩慢或者某次卡頓如何發生的原因。
通過QOS數據以及擴展的信息,開發者就可以自由地進行優化,可以考慮的優化角度包括架構設計、編碼選擇、流媒體協議、自適應算法、連接與卡頓邏輯、客戶端軟件設計。