Qos(Quality of Service)

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數據以及擴展的信息,開發者就可以自由地進行優化,可以考慮的優化角度包括架構設計、編碼選擇、流媒體協議、自適應算法、連接與卡頓邏輯、客戶端軟件設計。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376531.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376531.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376531.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Popline:帥氣的浮動 HTML5 文本編輯器工具欄

Popline 是一個基于 HTML5 實現的富文本編輯器工具欄,設計靈感來自 PopClip ,相比傳統的文本編輯器工具,Popline 能夠浮動在編輯的文本周圍,操作起來十分方便。 您可能感興趣的相關文章Metronic – 基于 Bootstrap 響應式后臺管理…

C#反射Assembly 具體說明

1、對C#反射機制的理解 2、概念理解后,必須找到方法去完畢,給出管理的主要語法 3、終于給出有用的樣例,反射出來dll中的方法 反射是一個程序集發現及執行的過程,通過反射能夠得到*.exe或*.dll等程序集內部的信息。使用反射能夠看到…

流媒體技術優化

文章目錄1、下載策略優化CDN選擇策略錯誤處理策略碼率選擇策略2、協議和架構優化HTTP2TCP變種擁塞控制QUIC架構流媒體協議的選擇與分發體系架構的設計對優化起著關鍵作用。 HLS和DASH協議在點播和OTT直播服務中已逐漸占據主流,其思想主要是將視頻轉為不同碼率并切為…

Android——android必看 各個控件屬性(網上看到的文字,覺得挺好的,珍藏了)...

屬性 值 說明 Android:orientation horizontal/vertical 設置布局水平還是垂直,默認是垂直 android:checked true/false 標記默認選中,如果是單選則選中最后一個 android:layout_gravity center/right/left/bottom/top 位置 android:gravity…

java中接口的定義與實現

1、定義接口 使用interface來定義一個接口。接口定義同類的定義類似,也是分為接口的聲明和接口體,當中接口體由常量定義和方法定義兩部分組成。定義接口的基本格式例如以下: [修飾符] interface 接口名 [extends 父接口名列表]{ [public] …

API設計筆記:pimpl技巧

pimpl pointer to implementation:指向實現的指針,使用該技巧可以避免在頭文件暴露私有細節,可以促進API接口和實現保持完全分離。 Pimpl可以將類的數據成員定義為指向某個已經聲明過的類型的指針,這里的類型僅僅作為名字引入&am…

C++必讀書

C必讀書 《Inside The C Object Model》 《Effective C》和《More Effective C》以及《Exceptional C》 《C面向對象高效編程(C Effective Object-Oriented Software Construction)》 《面向對象軟件構造(Object-Oriented Software Construction)》 《設計模式(Design Patterns…

python socket編程實現的簡單tcp迭代server

與c/c socket編程對照見http://blog.csdn.net/aspnet_lyc/article/details/38946915 server: import socketPORT 9999 BACKLOG 5 MAXLINE 1024listenfd socket.socket(socket.AF_INET,socket.SOCK_STREAM) listenfd.bind((,PORT)) listenfd.listen(BACKLOG)w…

API設計筆記:抽象基類、工廠方法、擴展工廠

文章目錄抽象基類、工廠方法擴展工廠抽象基類、工廠方法 renderer.h #ifndef UNTITLED_RENDERER_H #define UNTITLED_RENDERER_H#include <string> class IRenderer { public:virtual ~IRenderer() {}virtual bool func1(const std::string& filename) 0;virtual …

《設計模式》-責任鏈模式

責任鏈模式是一種對象的行為模式【GOF95】。在責任鏈模式里&#xff0c;很多對象由每一個對象對其下家的用而鏈起來形成一條鏈&#xff0c;請求在這個鏈上傳遞&#xff0c;直到鏈上的某一個對象決定處理此請求。 發出請求的客戶端并不知道鏈上的哪一個對象終處理這個請求&#…

ASPX的Timer位置沒放正確,導致整頁刷新,而不是UpdatePanel里的內容刷新。

提示&#xff1a;Timer應該放在UpdatePanel的ContentTemplate標簽里&#xff0c;才行。放在外面的話&#xff0c;會導致整頁刷新。轉載于:https://www.cnblogs.com/xxxteam/p/3209522.html

高性能隨機數:mt19937、uniform_int_distribution使用

// 例如要隨機獲取一個vector中的元素 // 先對vector nums進行插入數據 .... // 使用高性能隨機數 mt19937 gen; // mt19937頭文件是<random> 是偽隨機數產生器&#xff0c;用于產生高性能的隨機數 uniform_int_distribution<int> dis(0, nums.size() - 1); //uni…

【機器學習】EM最大期望算法

EM, ExpectationMaximization Algorithm, 期望最大化算法。一種迭代算法&#xff0c;用于含有隱變量(hidden variable)的概率參數模型的最大似然估計或極大后驗概率估計&#xff0c;其概率模型依賴于無法觀測的隱變量。 經常用在ML與計算機視覺的數據聚類領域。 EM應用&#xf…

ModuleNotFoundError: No module named ‘_ctypes‘報錯解決

1、python3的安裝與卸載 先刪除現有的python3 https://codeantenna.com/a/Ys0TCtmqIJ 2、關于ctypes的報錯問題解決 安裝庫后&#xff0c;重新編譯python ModuleNotFoundError: No module named _ctypeshttps://www.jianshu.com/p/69681655309b 問題解決

做一個給自己手機免費發送“天氣預報”信息的軟件

實現一個以下截圖這樣的功能&#xff01;沒錯&#xff0c;就是你手機可以收到“免費”的天氣預報短信&#xff01; 一、在做之前必須了解以下四個功能&#xff1a; 1、WebService 2、Quartz.Net&#xff08;定時任務框架&#xff09; 3、SMTP&#xff1a;簡單郵件傳輸協議,它是…

《拾牙慧者博客檢索指南》

本指南主要概括一下我的博客所涉及到的一些方面&#xff0c;以及給出每個專欄的索引&#xff0c;方便以后自己以及他人的查找相關文章。 專欄總覽《春秋招面經》《基礎技術棧》《數據庫學習筆記》《嵌入式編程經驗》《圖像處理與計算機視覺經驗》《機器學習筆記與數學》《算法與…

Android_Chronometer計時器

最近做一個項目用到Handler 和Message &#xff0c;開始時不是很明白&#xff0c;不了解其中的內部機制&#xff0c;所以開發起來有點難度&#xff0c;之后自己找了Android 時間服務 這一節的內容&#xff0c;總結了一點關于時間的知識&#xff0c;在這里大概寫一下&#xff0c…

補碼

3&#xff0e;經常使用數值編碼 因為機器數在計算時&#xff0c;假設符號位和數值位同一時候參與運算&#xff0c;則可能會產生錯誤結果&#xff1b;而假設單獨考慮符號問題&#xff0c;又會添加運算器件的實現難度。因此&#xff0c;為了使計算機可以方便地對數值進行各種算術…

置頂 | wolai博客

最近用wolai記錄筆記較多&#xff0c;這里放一下我wolai的地址&#xff0c;當然csdn這邊也會同時更文。 hanhan的博客

深入研究Clang(四) Clang編譯器的簡單分析

作者&#xff1a;史寧寧&#xff08;snsn1984&#xff09;首先我們確定下Clang編譯器的具體內容和涵蓋范圍。之前在《LLVM每日談之二十 Everything && Clang driver 》中曾經提到過&#xff0c;Clang driver&#xff08;命令行表示是clang&#xff09;和Clang前端&…