流媒體動態位元速率自適應方案
阿新 • • 發佈:2021-11-11
流控(動態位元速率調整)機制:
- 緩衝區(視訊輸入、網路收發)
- socket快取監測
- MTU控制
- 丟幀處理與檢測
- 調整位元速率(根據目前的網路丟幀狀況,來決定位元速率降低幅度)
- I、P幀處理,如果發現收到的P幀不完整,立即丟掉該P幀;如果發現收到的I幀不完整,丟掉整個GOP。
根據網路實時狀況,上層丟幀來降低位元速率;定時判定網路狀況,根據多次定時的網路結果,來深層次調整位元速率。
一、實時根據網路狀況來調整位元速率。
如果網路狀況不好,採用上層降低位元速率方案。暫時拋掉部分原始幀,這些幀不參與編碼;通過這種最上層的簡單方式來降低位元速率。
二、深層次調整位元速率判定
分析一下,丟幀的程度與持續時間。
2.1 網路狀況一般
維持目前的狀況,不做特殊深層次處理。
2.2 網路狀況較差
深層次降低位元速率方案
1)降低源頭幀率(譬如取樣幀率,由25變為20)。
2)降低目標解析度(譬如480360的影象改為400300的位元速率)
降低幅度,由網路狀況決定,不採用連續階梯降位元速率。
2.3網路狀況良好
在長時間內觀測到網路狀況良好時候,可以發一些重複測試圖片或者無效測試資料來檢測是否需要丟幀。如果會丟幀,則不再發送重複圖片;否則,採用深層次調整位元速率的方案緩慢提升位元速率。
注意:對於降低位元速率而言,一般要快速、幅度大一些;對於提升位元速率而言,一般要緩慢、幅度小一下。提升位元速率比降低位元速率,更為慎重!
————————————————
版權宣告:本文為CSDN博主「勇往直前之人」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/wghhdzwzqbx02/article/details/77775991