影響音視頻延遲的關鍵因素(三):傳輸、渲染

影響音視頻延遲的種因素有不少,此前咱們已分享了不一樣流媒體系統對時延影響,數據流動過程當中採集、前處理、編解碼三個環節是怎樣引入時延的,今天咱們將分享在流媒體數據傳輸、渲染環節,有哪些因素會致使時延。網絡

1傳輸性能

流媒體數據傳輸是很是複雜的過程,涉及到運營商、物理距離、接入方式以及節點部署等多方面因素。傳輸的極限是光速,光在光纖中的傳輸速度大概是28萬每秒,從北京到深圳,大概須要10ms,但在實際傳輸過程當中,使用光纖到戶這種方式傳輸大概須要20ms,用4G的話會達到80ms,咱們實測的5G會好不少,5G更接近光纖。優化

在傳輸方面作延遲的優化,能夠經過如下幾個方面來實現:編碼

第一,更好的基礎設施。好比FTTH(光纖到戶)、5G,若是沒有好的網絡,作低延遲的優化是不現實的,因此首先是要增強網絡建設;spa

第二,合理部署服務。讓咱們的服務自己足夠靠近用戶,作好全鏈路最優路由;設計

第三,針對實時流媒體優化傳輸控制協議。現實的網絡中抖動、丟包是不可避免的,咱們須要針對這種特性去設計咱們實時流媒體傳輸控制協議,包括重傳、估算可用帶寬、編碼,根據網絡狀況加入編碼冗餘;爲了對抗抖動要加dejitter等3d

5G對低延遲的影響有這兩個方面:第一高可靠低時延通訊,它的空口時延號稱達到1ms,咱們自測的話是接近光纖,基於此咱們能夠實現一些關鍵操做,好比遠程控制,工業的自動化;另外一個是加強型移動寬帶,它能夠達到很大的上行,咱們測的話能夠達到7/800兆,上傳4K、8K的視頻沒有太大壓力。
image視頻

即構很期待5G的到來和鋪開的,首先咱們方案是轉控分離的,咱們的信令面和媒體轉發面是分開的,轉發面咱們就能夠從一個localDC到另外一個localDC,不須要再往上面去擴,這樣更靠近用戶走更短的路徑,有時延的優化;第二是咱們控制面是有狀態的,那咱們仍是往上走,控制面並不影響數據的延遲。blog

2渲染接口

最後一個是渲染,渲染時會調用系統的接口,所以系統接口的類別對時延的影響很大。如安卓咱們用OPENSL ES,這個是低時延的關鍵,還有一些廠商作的私有接口優化,好比耳返。在某些場景耳返是個重要功能,如唱歌過程當中歌聲須要實時返回耳朵來判斷唱的準不許,那這裏的時延就很是關鍵,若是不作耳返優化,在VIVOX9它的時延可能達到了209ms,而當開啓優化以後,時延下降到14ms,這是很是明顯的優化。

即構的接口SDK已經去適配這些廠商,拿到了他們的文檔、接口,咱們作了適配,選擇即構的方案,就能夠即插即用。

以上就是分環節分析延遲產生的各類因素,但下降延遲是一個系統性工程,任何單個節點出現異常,都會引起總體異常。

下圖上下兩部分是兩個極端,上半部分粒度很粗,採集、前處理、編碼一塊兒作完給傳輸,對端解碼、後處理、渲染也一口氣作完。這樣作,在設備性能好的狀況下,延遲是能夠比下面的流水線實現低的,可是吞吐是有問題的;
image

另外一個極端是把每一個環節拆的很細,採集、前處理、編碼、後處理等環節都當成一個個單獨的任務,拆的很細就會有另外一個overhead,咱們把數據從前一個拋給後一個是生產者和消費者的關係,這樣是自帶buffer的,buffer就意味着延遲。

所以咱們須要權衡考慮設備的能力和怎麼去拆解每一個環節任務,作更合理的分割。

相關文章
相關標籤/搜索