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

2021-07-26 17:54:49 字數 2239 閱讀 2891

如何實現低延遲、秒開的直播?

本篇是該系列的第一篇,將全面解析ucloud直播雲在網路傳輸方面的技術實踐。

實現就近接入的技術比較廣為人知,就是cdn即content delivery network (內容分發網路)。cdn包含兩大核心技術:負載均衡和分發網路,隨著10多年的演進,對負載均衡和分發的實現方式已多種多樣,分發網路的構建策略通常是經過日積月累的總結出一套最合適的分發路由,並且也不是一成不變,需時刻關注調整,動態運營。這裡重點介紹下cdn的負載均衡技術。

負載均衡是如何實現讓使用者就進訪問的呢?比較普遍的實現方式:通過使用者使用的dns伺服器來判斷客戶端所在的網路位置,從而返回對應的服務ip。如下圖示例:

廣東電信使用者ip:1.1.1.1 需要看乙個直播http://www.

ucloud.cn/helloworld.fl

v ,實現就近訪問的過程是:

1>使用者向配置的dns伺服器1.1.1.0(通常是運營商指定,也稱local dns,後面簡稱ldns)發起www.ucloud.cn 的查詢;

2> ldns 上沒有該網域名稱的記錄,則往頂級即root ns上發起查詢;

3>root ns返回告知ldns該網域名稱的權威解析記錄在ucloud ns上;

4>ldns 向ucloud ns發起查詢;

5>ucloud ns 向ucloud gslb服務發起查詢,gslb發現 ldns1.1.1.0是屬於廣東電信;

6>返回廣東電信的就近節節點ip1.1.1.2;

7>返回1.1.1.2給ldns;

8>返回給使用者1.1.1.2,使用者到1.1.1.2上去獲取直播內容。

鏈路很長,但是每個ldns上都會對查詢過的網域名稱做合理的快取,下乙個廣東電信的使用者再來查詢的時候就可以直接返回1.1.1.2。架構並不複雜,關鍵點是如何知道ldns是位於廣東電信,這就涉及乙個ip位址庫。有開源位址庫,也有商業位址庫,可以按需求採購即可,一般一年1萬左右。這裡不難看出來,排程的準確度是完全依賴使用者配置的ldns,而這些ldns大多數是省級別的,即glsb只知道使用者是廣東電信,但是常常分不出來是廣東廣州電信,還是廣東深圳電信。 httpdns就是實現更精準的排程一種方式:

1>使用者1.1.1.1通過http協議直接向ucloud ns請求直播網域名稱www.ucloud.cn;

2>ucloud ns發現使用者ip1.1.1.1屬於廣東深圳電信;

3>返回廣東深圳電信節點1.1.1.11給ucloud ns;

4>返回給使用者。

httpdns的好處顯而易見:一可精準獲得使用者端的ip,有效避免使用者配錯ldns(有時是網路中心配錯dns)的情況,可更精準定位使用者所在網路位置。二可避免dns解析劫持。

bgp即border gateway protocol (邊界閘道器協議),業內簡稱bgp。為什麼bgp中轉架構對直播加速和分發如此重要?不得不提國內複雜的網路狀況,較廣為人知的是「南電信北聯通」的寬頻使用者分布。那乙個簡單的問題,電信主播發起了直播,聯通的使用者想看怎麼辦呢? 從結構上講,肯定是有有限個電信聯通兩個運營商的交匯點,相當於資訊橋梁。 這就會帶來兩個問題:1、路程要繞遠,網路延遲高且不穩定;2、高峰期擁堵,導致直播流卡頓。

bgp的技術原理往簡單的說就是允許同一ip在不同網路中廣播不同的路由資訊,效果就是同乙個ip,當電信使用者來訪問時走電信網內的路由,聯通使用者來訪問時走的聯通的路由。所以bgp技術對跨運營商的訪問帶來了巨大的便利,特別是直播場景。不同於傳統的檔案快取場景,乙個哪怕第一次是跨了遙遠的距離從源站獲取後,本地網路進行快取,後面的訪問都走本地網路。直播加速是流式的,並且當要做到低延遲的時候,中間的快取要盡可能少。 bgp相當於給跨網的使用者就近搭建了一坐橋梁,不必繞遠路,延時和穩定性都大大提高了。

技術原理部分介紹完了,那麼多直播延遲影響有多少改善呢?首先這裡的就近,不一定是物理距離近,不考慮瞬時負載情況下,更多是指測速延時最優的機房。在國內一般而言相同的接入運營商(電信、聯通、移動)並且地理位置最近的情況網路延遲最優,小於15ms。跨省同運營商的網路延遲25~50ms,跨運營商情況更複雜一些,在50~100ms。總結起來,直播當中每個包的延時可以縮短100ms,由於網路的疊加效果,反射到上層是秒級的延遲縮減。

以上就是直播雲實現接入網路優化的技術細節。

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

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

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

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

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

本篇是該系列的第三篇,上篇 關於直播,所有的技術細節都在這裡了 二 中,我們講述了直播應用層協議及傳輸層協議的選擇以及對直播體驗影響的分析 本篇中我們將介紹在傳輸直播流 過程中的內容快取與傳輸策略優化細節原理。i幀表示關鍵幀。你可以理解為這一幀畫面的完整保留 解碼時只需要本幀資料就可以完成。因為包含...