關於直播,所有的技術細節都在這裡了(三)

2021-07-26 21:09:24 字數 984 閱讀 2063

本篇是該系列的第三篇,上篇《關於直播,所有的技術細節都在這裡了(二)

》中,我們講述了直播應用層協議及傳輸層協議的選擇以及對直播體驗影響的分析 。本篇中我們將介紹在傳輸直播流**過程中的內容快取與傳輸策略優化細節原理。

i幀表示關鍵幀。你可以理解為這一幀畫面的完整保留;解碼時只需要本幀資料就可以完成。(因為包含完整畫面)

p幀表示這一幀跟之前的乙個關鍵幀(或p幀)的差別。解碼時需要用之前快取的畫面疊加上本幀定義的差別,生成最終畫面。(也就是差別幀,p幀沒有完整畫面資料,只有與前一幀的畫面差別的資料)

b幀是雙向差別幀。b幀記錄的是本幀與前後幀的差別(具體比較複雜,有4種情況)。換言之,要解碼b幀,不僅要取得之前的快取畫面,還要解碼之後的畫面,通過前後畫面的與本幀資料的疊加取得最終的畫面。

b幀壓縮率高,但是編譯碼時會比較耗費cpu,而且在直播中可能會增加直播延時,因此在移動端上一般不使用b幀。

比較好的策略是服務端自動判斷關鍵幀的間隔,按業務需求快取幀序列,保證在快取中儲存至少兩個或者以上的關鍵幀,以應對低延時、防卡頓、智慧型丟包等需求。

當然,對於網路條件非常好的使用者,這兩項是可以同時保證的,這裡主要是針對網路條件不是那麼好的使用者,如何解決延時與卡頓的問題。

這裡通常有兩種技術來平衡和優化這兩個指標。

什麼時候需要丟包呢?

關於丟包,需要解決兩個問題:

一是正確判斷何時需要進行丟包

以上就是ucloud直播雲:內容快取與傳輸策略優化細節原理。

關於終端優化,請參閱即將發布的《關於直播,所有的技術細節都在這裡了(四)》。

關於直播,所有的技術細節都在這裡了(一)

如何實現低延遲 秒開的直播?本篇是該系列的第一篇,將全面解析ucloud直播雲在網路傳輸方面的技術實踐。實現就近接入的技術比較廣為人知,就是cdn即content delivery network 內容分發網路 cdn包含兩大核心技術 負載均衡和分發網路,隨著10多年的演進,對負載均衡和分發的實現方...

關於直播,所有的技術細節都在這裡了(四)

參見之前介紹的dns過程,如下圖 根據協議型別 如rtmp rtp rtsp http等 與伺服器建立連線並接收資料 解析二進位制資料,從中找到相關流資訊 根據不同的封裝格式 如flv ts 解復用 demux 首屏時間優化 從步驟2入手,通過預設解碼器型別,省去探測檔案型別時間 延時優化 推流優化...

關於直播,所有的技術細節都在這裡了(一)

如何實現低延遲 秒開的直播?本篇是該系列的第一篇,將全面解析ucloud直播雲在網路傳輸方面的技術實踐。實現就近接入的技術比較廣為人知,就是cdn即content delivery network 內容分發網路 cdn包含兩大核心技術 負載均衡和分發網路,隨著10多年的演進,對負載均衡和分發的實現方...