位元速率自適應演算法深入淺出

2021-09-24 23:06:41 字數 1510 閱讀 1730

直播大家都不陌生了,目前主流的直播協議 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的演算法,其主要是來計算資料聚集的演算法,主要通過不斷地取離種子點最...