流媒體動態碼率自適應方案

流控(動態碼率調整)機制:

1、緩衝區(視頻輸入、網絡收發)。

2、socket緩存監測。

3、MTU控制。

4、丟幀處理與檢測。

5、調整碼率(根據目前的網絡丟幀狀況,來決定碼率降低幅度)。

6、I、P幀處理,如果發現收到的P幀不完整,立即丟掉該P幀;如果發現收到的I幀不完整,丟掉整個GOP。

根據網絡實時狀況,上層丟幀來降低碼率;定時判定網絡狀況,根據多次定時的網絡結果,來深層次調整碼率。

一、實時根據網絡狀況來調整碼率。

如果網絡狀況不好,採用上層降低碼率方案。暫時拋掉部分原始幀,這些幀不參與編碼;通過這種最上層的簡單方式來降低碼率。

二、深層次調整碼率判定

分析一下,丟幀的程度與持續時間。

2.1 網絡狀況一般

維持目前的狀況,不做特殊深層次處理。

2.2 網絡狀況較差

深層次降低碼率方案

1)降低源頭幀率(譬如採樣幀率,由25變爲20)。

2)降低目標分辨率(譬如480*360的圖像改爲400*300的碼率)

降低幅度,由網絡狀況決定,不採用連續階梯降碼率。

2.3網絡狀況良好

在長時間內觀測到網絡狀況良好時候,可以發一些重複測試圖片或者無效測試數據來檢測是否需要丟幀。如果會丟幀,則不再發送重複圖片;否則,採用深層次調整碼率的方案緩慢提升碼率。


注意:對於降低碼率而言,一般要快速、幅度大一些;對於提升碼率而言,一般要緩慢、幅度小一下。提升碼率比降低碼率,更爲慎重!








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章