直播大家都不陌生了,目前主流的直播協議 rtmp、hls、httpflv、dash,這裡先簡單介紹一下。
協議rtmp
封裝格式
flvtag
tsflv
mp4傳輸方式
tcp流
http流
http延遲低
高低高flash
hls.js\蘋果\安卓
flv.js
dash.js
rtmp(real time message protocol),是由adobe公司提出的一種應用層的協議。
特點:
延遲: 延遲較低 3s
特點:
dash 原理類似 hls。
特點:
對於 hls、dash 的延遲問題,雖然我們可以通過縮小切片大小來降低延遲,但是,會受到索引檔案、gop等因素的限制。
前面說了很多基礎的介紹,目的是為了更好地理解自適應位元速率演算法。
當我們的網路波動的時候,我們可以做什麼?
1、上層降低位元速率。如:丟幀。
2、位元速率動態切換。例如:當我網路狀況不佳的時候,我就降低位元速率。當網速充足的時候,就公升高位元速率。
hls、dash 這兩種協議都是支援位元速率無縫切換的。
這裡我們要考慮兩個問題,1、位元速率切換的目的是什麼?2、什麼情況下進行位元速率切換?
位元速率自適應演算法的類別:
rate-based: 基於**的頻寬去決策下一片段的位元速率檔位
同時考慮**吞吐量和buffer資訊決策下一片段的位元速率檔位
單獨使用該類別可能導致使用者位元速率一直處於較低位元速率。
dash中用到了平滑流(sf)演算法:
這裡也是做了一些優化。比如δ為頻寬變化係數,根據頻寬動態變化。
評價:該類別受限於頻寬**演算法
在頻寬**準確的情況下,可以充分利用使用者頻寬
如果不考慮當前buffer長度,可能會帶來卡頓而影響**體驗。
結合了兩者資訊的演算法可以獲得相對較好的效果,例如模型**控制(mpc)演算法。
前面講到位元速率自適應演算法是學術界近年來的乙個研究熱點。
所以是否有必要根據實際直播內容,對位元速率進行調整呢?
所以,想要設計合理的位元速率切換演算法,既要考慮頻寬和緩衝區長度,又要考慮位元速率切換頻率和切換幅度,最後可能還要考慮直播內容。
KMP演算法深入淺出
s ababcababa p ababa kmp演算法與bf演算法的區別就在於kmp演算法巧妙的消除了指標i的回溯問題,只需確定下次匹配j的位置即可,使得問題的複雜度由o mn 下降到o m n 在kmp演算法中,為了確定在匹配不成功時,下次匹配時j的位置,引入了next陣列,next j 的值表示...
深入淺出K Means演算法
摘要 在資料探勘中,k means演算法是一種 cluster analysis 的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最近均值的演算法。在資料探勘中,k means演算法是一種cluster analysis的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種...
深入淺出K Means演算法
在資料探勘中,k means演算法是一種 cluster analysis 的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最近均值的演算法。在資料探勘中,k means演算法是一種cluster analysis的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最...